• ベストアンサー

カウントダウンとカウントアップについて

JavaScriptで「○○は生後△△日になりました。あと××日で1歳になります。」というようにカウントダウンとカウントアップを設置したいと思っています。 例えば、2003年2月1日生まれの場合は カウントアップは var xxday = new Date(2003, 2-1, 2); カウントダウンは var xday = new Date(2004, 2-1, 1); でいいのでしょうか??

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

  • ベストアンサー
noname#199778
noname#199778
回答No.2

質問の意図するところが少々読めない部分があるのですが、xxdayというDateオブジェクトに生まれた日、xdayというDateオブジェクトに1歳の誕生日を入れるのであれば、質問文の通りで良いのではないかと思います。 x=new Date(yyyy, mm, dd) という形でxをDateオブジェクトとして定義すると、xはyyyy年mm月dd日という日付を持つことになります。 ただし、月の表記は0を初期値とする連番となり、1月は0に相当するので、日本式の月の表記からは1を引く必要があります(2月なら"2-1")。 とりあえず、下記に質問文のソースをそのまま作ってみました。 xxdayをbirthday、xxdayをxdayという名前に書き換えて作成し、また生後の経過日数をsncdays、1歳の誕生日までの残り日数をtilxdayという変数で定義しています。 こちらで確認してみて下さい。 <html> <head> <script type="text/javascript"><!-- today= new Date(); birthday= new Date(2003,2-1,1); xday= new Date(2004,2-1,1); sncdays= Math.floor((today.getTime()-birthday.getTime())/(24*60*60*1000)); tilxday= Math.ceil((xday.getTime()-today.getTime())/(24*60*60*1000)); //--></script> </head> <body> <script type="text/javascript"><!-- document.write("○○は生後"+sncdays+"日になりました。あと"+tilxday+"日で1歳になります。") //--></script> </body> </html> 参考まで。

noname#5778
質問者

お礼

ありがとうございました。 同じように表示されるJavaでもいろいろなソースがあることをはじめて知りました。今はソースをダウンロードしているだけですが、勉強してみたら楽しそうですね。

その他の回答 (1)

  • mi-si
  • ベストアンサー率35% (200/567)
回答No.1

<script LANGUAGE="JavaScript"> var now = new Date(); var xday = new Date(2004,2-1,1); var xxday = new Date(2003,2-1,1); s = Math.floor((now.getTime() - xxday.getTime()) / (24*60*60*1000)); t = Math.ceil((xday.getTime() - now.getTime()) / (24*60*60*1000)); document.writeln("○○は、生まれてから" + s + "日になります。後"+ t +"日で1歳になります<BR>"); </SCRIPT> これで良いと思うのですが?きっちり検算してません。

noname#5778
質問者

お礼

ありがとうございました。 確認してみたところ、私が設定したものと同じカウントが出てきたのであっていたようです。

関連するQ&A