3.現在の時刻を表示
そのページにアクセスしたのが何年何月何日何時何分何秒か、というのを表示するスクリプトです。アクセスした瞬間を表示するだけのため、後述のリアルタイム時計のように動きがなくおもしろくない(?)というのが欠点です。そのためこのスクリプトはサイト開設の数か月前に消滅しました。(笑)
★使い方
以下のスクリプトを<BODY>〜</BODY>の間の好きなところに記述してください。
<SCRIPT language="JavaScript">
<!--
SysDate=new Date();//(1)
Year=SysDate.getYear();
if(Year<2000){Year=Year+1900;}//(2)
Month=SysDate.getMonth();
Date=SysDate.getDate();
day=new Array("日","月","火","水","木","金","土");//(3)
Day=day[SysDate.getDay()];//(4)
Hour=SysDate.getHours();
Minutes=SysDate.getMinutes();
Seconds=SysDate.getSeconds();
document.write("ただいま",Year,"年",Month+1,"月",Date,"日(",Day,")",Hour,"時",Minutes,"分",Seconds,"秒です。");
//-->
</SCRIPT>
(説明)
まず、(1)の「SysDate=new Date();」の部分で現在の時刻を取得します。このとき注意するのは、取得される時刻はクライアント(ユーザー側)のパソコンの時刻が表示されるので、時計が合っていないと間違った時刻を表示することがあります。
そして、取得した時刻はそれより下の「Year=SysDate.getYear();」〜「Seconds=SysDate.getSeconds();」メソッドを通り抜けることにより時刻が表示されますが、ここではさらに(2)と(3)の2つの処理が加わっています。これがないと表示がおかしくなります。
(2)の「if(Year<2000){Year=Year+1900;}」では西暦を4桁に変換します。これはかつてコンピューターが1999年を「99」というふうに下2桁で表示していた名残で、このままだと西暦2000年では「00」または「100」となってしまい大小計算でおかしくなる(いわゆる2000年問題)ので、この処理が必要なわけです。
(3)の「day=new Array("日","月","火","水","木","金","土");」ではDayメソッドを曜日に変換します。コンピューターは日〜土の曜日を0〜6の数字で返してきます。
日曜日=0
月曜日=1
火曜日=2
水曜日=3
木曜日=4
金曜日=5
土曜日=6
表示するにはその数字を曜日に変換しなければなりません。ほかの書き方もありますが、それだと複雑になるのでここではシンプルに「Array(配列)」を使います。なお、Arrayは「new」という文字を使って生成します。Arrayの添え字は左から0,1,2,…となり、0は日曜日に対応するので左から日、月、火、…となります。
(4)では(3)のday配列から「day[添え字]」で読み出します。ここでgetDayメソッドは数値を返してくるので「Day=day[SysDate.getDay()];」の「SysDate.getDay()」が数値に変わります。(赤字の部分)
最後に、月の部分が「Month+1」となっているのは、コンピューターは月を「1〜12」ではなく「0〜11」で返してくるからです。このままだと月だけ1少ない数字になるので+1としています。(青字の部分)
実行結果