9.リアルタイム時計
フォームの中でリアルタイムに動く時計です。ちょっとしたアクセントにどうぞ。
<HTML>
<TITLE>リアルタイム時計</TITLE>
<SCRIPT language="JavaScript">
function time() {
var now=new Date();
year=now.getYear();
if(year<2000){year=year+1900;}
month=now.getMonth()+1;
date=now.getDate();
day=new Array("日","月","火","水","木","金","土");
day=day[now.getDay()];
hour=now.getHours();
minute=now.getMinutes();
second=now.getSeconds();
if(hour<="9"){hour="0"+hour;};
if(minute<="9"){minute="0"+minute;};
if(second<="9"){second="0"+second;};
document.form1.watch.value=year+"年"+month+"月"+date+"日("+day+")"+hour+":"+minute+":"+second;
setTimeout('time()',1000);
}
</SCRIPT>
<BODY onLoad="time();">
<form name="form1" mathod=post>
<input name="watch" size=35>
</form>
</BODY>
</HTML>
(説明)
さて、時刻を表示するには普通にgetHoursなどのメソッドを並べてやればいいのですが、このままだと時・分・秒が1桁の数字の場合コンピューターはそのまま1桁で返してしまいます。たとえば現在の時刻が1時2分3秒の場合間にコロン(:)をはさんで表示すると「1:2:3」となってしまいます。これではかっこよくないので1桁の場合頭に「0」をつけるスクリプトを書きます。(赤字の部分)
if(hour<="9"){hour="0"+hour;};
if(minute<="9"){minute="0"+minute;};
if(second<="9"){second="0"+second;};
こうすることでもし数字が1桁(9以下)の場合は自動的に頭に「0」がつき、さきほどの1時2分3秒の場合「01:02:03」となり、デジタル時計らしく見えます。年・月・日の場合でも同じ処理でできます。ただし年についてはここでは2桁の場合4桁にする(1900を足す)スクリプトを書いているので書かない方がいいでしょう。
実行結果