• ベストアンサー

今日で生まれて何日何分何十秒という表示の仕方

常にリアルタイムでホームページに表示させたいのですが どうしたらいいでしょうか? ちなみに2004年2月28日生まれの場合です。 当方あまりHTMLに詳しくないので コピペで簡単にできる方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

こっちが正攻法 <html> <head> <script type="text/javascript"> <!-- function head0(num){ if(num < 10){ num = " " + num; } return num; } function umaretekara(){ var birthyear = 2004;//生まれた年を西暦で入れてください。 var birthmonth = 2;//生まれた月を入れてください。 var birthday = 28;//生まれた日を入れてください。 var birthhour = 15;//生まれた日の生まれた時刻の時の部分を入れてください。(24時間表示です。) var birthmin = 2;//生まれた日の生まれた時刻の分の部分を入れてください。 var birthsec = 0;//生まれた日の生まれた時刻の秒の部分を入れてください。えっ?そんなの母子手帳見てもわからない?だとしたら「0」を入れてください。 var nowsysdate = new Date(); var birthdate = new Date(); birthdate.setFullYear(birthyear); birthdate.setMonth(birthmonth - 1); birthdate.setDate(birthday); birthdate.setHours(birthhour); birthdate.setMinutes(birthmin); birthdate.setSeconds(birthsec); var xday2now = nowsysdate.getTime(); var xday2birth = birthdate.getTime(); var birth2now = xday2now - xday2birth; if(birth2now > 0){ var kikanday = Math.ceil(birth2now/(24*60*60*1000))-1; birth2now = birth2now - kikanday*24*60*60*1000; var kikanhour = Math.ceil(birth2now/(60*60*1000))-1; birth2now = birth2now - kikanhour*60*60*1000; var kikanmin = Math.ceil(birth2now/(60*1000))-1; birth2now = birth2now - kikanmin*60*1000; var kikansec = Math.ceil(birth2now/1000); if(kikansec == 60){ kikanmin++; kikansec = 0; } kikanhour = head0(kikanhour) kikanmin = head0(kikanmin); kikansec = head0(kikansec); var printkikan = kikanday + "日" + kikanhour + "時間" + kikanmin + "分" + kikansec + "秒"; printkikan = "生まれてから" + printkikan + "経ちました。"; writeingdiv(printkikan); var temp = setTimeout("umaretekara()",1000); } } function writeingdiv(printkikan){ var msgbox; if(document.getElementById){ //モジラ系ブラウザー(Netscape6以降等)用、IEでも動作します。 msgbox = document.getElementById("toshihyoji"); msgbox.innerHTML = printkikan; }else if(document.all){ //IE用、上記でも動作しますが古いバージョンのIEで動作しないかもしれないので念のため。 msgbox = document.all("toshihyoji"); msgbox.innerHTML = printkikan; }else if(document.layers){ //NN4.x用スタイルシートで必ず"position:absolute;"を宣言すること。なお、idでスタイルシートを適用する場合"タグ名#id名"でタグ名を省略して"#id名"としないと無効になります。 var doc = document.layers["toshihyoji"].document; doc.open(); doc.write(printkikan); doc.close(); } } //--> </script> <style type="text/css"> <!-- #toshihyoji{ position:absolute; } --> </style> </head> <body onLoad="umaretekara()"> <div id="toshihyoji"></div><br> </body> </html> こっちはややフォームを使っているので反則的です。(スタイルシートでごまかしてあります。) <html> <head> <script type="text/javascript"> <!-- function head0(num){ if(num < 10){ num = " " + num; } return num; } function umaretekara(){ var birthyear = 2004;//生まれた年を西暦で入れてください。 var birthmonth = 2;//生まれた月を入れてください。 var birthday = 28;//生まれた日を入れてください。 var birthhour = 15;//生まれた日の生まれた時刻の時の部分を入れてください。(24時間表示です。) var birthmin = 2;//生まれた日の生まれた時刻の分の部分を入れてください。 var birthsec = 0;//生まれた日の生まれた時刻の秒の部分を入れてください。えっ?そんなの母子手帳見てもわからない?だとしたら「0」を入れてください。 var nowsysdate = new Date(); var birthdate = new Date(); birthdate.setFullYear(birthyear); birthdate.setMonth(birthmonth - 1); birthdate.setDate(birthday); birthdate.setHours(birthhour); birthdate.setMinutes(birthmin); birthdate.setSeconds(birthsec); var xday2now = nowsysdate.getTime(); var xday2birth = birthdate.getTime(); var birth2now = xday2now - xday2birth; if(birth2now > 0){ var kikanday = Math.ceil(birth2now/(24*60*60*1000))-1; birth2now = birth2now - kikanday*24*60*60*1000; var kikanhour = Math.ceil(birth2now/(60*60*1000))-1; birth2now = birth2now - kikanhour*60*60*1000; var kikanmin = Math.ceil(birth2now/(60*1000))-1; birth2now = birth2now - kikanmin*60*1000; var kikansec = Math.ceil(birth2now/1000); if(kikansec == 60){ kikanmin++; kikansec = 0; } kikanhour = head0(kikanhour) kikanmin = head0(kikanmin); kikansec = head0(kikansec); var printkikan = kikanday + "日" + kikanhour + "時間" + kikanmin + "分" + kikansec + "秒"; printkikan = "生まれてから" + printkikan + "経ちました。"; document.sugitatoshi.toshihyoji.value = printkikan; var temp = setTimeout("umaretekara()",1000); } } //--> </script> <style type="text/css"> <!-- #toshihyoji{ font-size:100%; border-style:none; width:100%; } --> </style> </head> <body onLoad="umaretekara()"> <form name="sugitatoshi"> <input type="text" name="toshihyoji" id="toshihyoji" disabled> </form> </body> </html>

その他の回答 (3)

  • howsike
  • ベストアンサー率58% (18/31)
回答No.3

<BODY onload="CountBirthday()"> <FORM name="form1"> <INPUT type="text" name="text1" size="30"> </FORM> <SCRIPT LANGUAGE="JavaScript"> <!-- function CountBirthday(){ var today = new Date(); //誕生日を記入 var BirthYr = 2004; var BirthMn = 2; var BirthDt = 28; var Birthday = new Date(BirthYr, BirthMn-1, BirthDt); var dat = (today.getTime() - Birthday.getTime()); var ans_Yr = dat/(1000*60*60*24*365); var ans_Dt = dat/(1000*60*60*24); var ans_Hr = dat/(1000*60*60); var ans_Min = dat/(1000*60); var ans_Sec = dat/1000; document.form1.text1.value = Math.floor(ans_Yr) + "年" + Math.floor(ans_Dt%365) + "日" + Math.floor((ans_Sec/3600)%24) + "時" + Math.floor((ans_Sec/60)%60) + "分" +Math.floor(ans_Sec%60) + "秒"; /* 年の表示がいらない場合は上の行頭に「//」を加え、下の行頭の「//」を削除。 */ //document.form1.text1.value = Math.floor(ans_Dt) + "日" + Math.floor((ans_Sec/3600)%24) + "時" + Math.floor((ans_Sec/60)%60) + "分" +Math.floor(ans_Sec%60) + "秒"; window.setTimeout("CountBirthday()",1000); } // --> </SCRIPT> ----------------------------------------- 上のソースを<BODY>~</BODY>の間にコピペしてみてください。 コピペする際、<BODY>タグの中に onload="CountBirthday()" を追加するのを忘れないように!!

回答No.2

下記のURLをご覧下さい。 #1では時間が出ていませんでした、済みません。

参考URL:
http://watari.pos.to/javascript2/06/06_03.htm
回答No.1

下記のURLをご覧下さい。

参考URL:
http://rakugakiya.s28.xrea.com/java/java_04b.htm
ericmartin
質問者

お礼

早速お返事ありがとうございます。でもコピペしましたが何にも表示されません。 それと計算結果を入力して表示させる方法ではなくて、ホームページを開いたら、常に「何日何分何十秒が経過しています。」という風に時計みたいに表示させたいんです。お願いします。

関連するQ&A