• 締切済み

javascriptにおける指定日時までのカウントダウン

いろいろなサイトを見回りながら「指定日までの残り日数と時間を表示する」のをjavascriptで動かしたいのですがリアルタイムに秒が進んでくれません。知識のある方はどうか間違えてる点のご教授お願いします。 <html> <head> <title>指定日までの残り日数と時間を表示する</title> </head> <body> <script language="JavaScript"><!-- function xDay(y,m,d,hh,mm,ss){ today = new Date(); xday = new Date(y,m-1,d,hh,mm,ss); dayMS = (24*60*60*1000,60*60*1000); days = Math.floor((xday.getTime()-today.getTime())/(24*60*60*1000)); hours = Math.floor(((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*60*1000)); minutes = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*1000))%60); seconds = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/1000)%60%60); myDisp=""; if (days != 0)myDisp+=days+"日と "; if (hours != 0)myDisp+=hours+"時間 "; if (minutes != 0)myDisp+=minutes+"分 "; myDisp+=seconds+"秒"; document.myForm.myFormDate.value = myDisp; setTimeout("xday()",1000); } // --></script> <form name="myForm"> <input type="text" size="35" name="myFormDate"> <script language="JavaScript"><!-- xday(); // --></script> </form> <script language="JavaScript"><!-- xDay(2008,9,13,15,00,00); // --></script> </body> </html>

みんなの回答

noname#84373
noname#84373
回答No.3

使う変数には var を付けましょう!>自分に ;_; 関数の宣言で xDay() としておきながら 呼び出しでは xday() でした

noname#84373
noname#84373
回答No.2

<html> <head> <title>指定日までの残り日数と時間を表示する</title> </head> <body> <script language="JavaScript"> var dy = new Date(2008,9-1,9,13,00,00); window.onload = init; function init(){ xDay(); setInterval(xDay,1000); } function xDay(){ s=(dy.getTime()-(new Date()).getTime())/1000; days = s/86400|0; hours = s%86400/3600|0; minutes=s%3600/60|0; seconds=s%60|0; document.getElementById('m').value = (days?days+'日と ':'')+(hours?hours+'時間 ':'')+(minutes?minutes+'分 ':'')+seconds+'秒'; } </script> <form name="myForm"> <input type="text" size="35" name="m"> </form> </body> </html>

noname#84373
noname#84373
回答No.1

<html> <head> <title>指定日までの残り日数と時間を表示する</title> </head> <body> <script language="JavaScript"><!-- function xDay(y,m,d,hh,mm,ss){ today = new Date(); xday = new Date(y,m-1,d,hh,mm,ss); dayMS = (24*60*60*1000,60*60*1000); days = Math.floor((xday.getTime()-today.getTime())/(24*60*60*1000)); hours = Math.floor(((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*60*1000)); minutes = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*1000))%60); seconds = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/1000)%60%60); myDisp=""; if (days != 0)myDisp+=days+"日と "; if (hours != 0)myDisp+=hours+"時間 "; if (minutes != 0)myDisp+=minutes+"分 "; myDisp+=seconds+"秒"; document.myForm.myFormDate.value = myDisp; setTimeout("xDay(2008,9,13,15,00,00)",1000); } // --></script> <form name="myForm"> <input type="text" size="35" name="myFormDate"> <script language="JavaScript"><!-- xDay(2008,9,13,15,00,00); // --></script> </form> </body> </html>

関連するQ&A

専門家に質問してみよう