リスト
<script type="text/javascript"><!--
myTbl = new Array("日","月","火","水","木","金","土");
myD = new Date();
myYear = myD.getFullYear();
myMonth = myD.getMonth() + 1;
myDate = myD.getDate();
myDay = myD.getDay();
myHours = myD.getHours();
myMinutes = myD.getMinutes();
mySeconds = myD.getSeconds();
myMess1 = myYear + "年" + myMonth + "月" + myDate + "日";
myMess2 = myTbl[myDay] + "曜日";
myMess3 = myHours + "時" + myMinutes + "分" + mySeconds + "秒";
myMess = myMess1 + " " + myMess2 + " " + myMess3;
document.write( myMess );
// --></script>
説明
● 現在日付を取得する
myD = new Date() ;
new Date() で、現在日付を取得します。 myD には、その日付時間情報が入ります。
この myD は、ただの変数ではありません。日時に関しての
部品がいろいろ詰まっている
オブジェクトが入った変数です。
(そんなに身構えないでください。気にせずに さらっと流してください ^^)
その myD から 必要な
部品(年、月、日、時、分、秒、曜日)をそれぞれ、1つずつ 取り出していきます。
(部品とは、「年」とか「月」とか「日」のことだったのですね ^^)
myYear | = myD.getFullYear(); | // 年 |
myMonth | = myD.getMonth()+1; | // 月 |
myDate | = myD.getDate(); | // 日 |
myDay | = myD.getDay(); | // 曜日 |
myHours | = myD.getHours(); | // 時 |
myMinutes | = myD.getMinutes(); | // 分 |
mySeconds | = myD.getSeconds(); | // 秒 |
『 月 』に、ひとつ問題があります。
月は 1月から 12月ですが、getMonth() の値は 0月から 11月になっています。
要するに 1を足せば、1〜12 になります。
myMonth = myD.getMonth( ) + 1 ;
myDay = myD.getDay();
『 曜日 』は、0 から 6 の数値が セットされています。
日曜日は0、月曜日は1、火曜日は2 ・・・ となります。
数値を表示しても意味がないので 配列を使って、「×曜日」に置き換えます。
myTbl = new Array( "日" , "月" , "火" , "水" , "木" , "金" , "土" ) ;
は、下と同じ結果です。Step.2 の あいさつ文表示の時は、下のやり方が逆に使いやすいですね。
myTbl = new Array(7) ;
myTbl[0] = "日" ;
myTbl[1] = "月" ;
myTbl[2] = "火" ;
myTbl[3] = "水" ;
myTbl[4] = "木" ;
myTbl[5] = "金" ;
myTbl[6] = "土" ;
myMess3 = myTbl[myDay] + "曜日" ;
上の式のように、文字と文字を
足すというのは、文字を
くっつけるということです。
"月" + "曜日" は
"月曜日" です。
三項演算子
年を取得する getFullYear() 関数は、大昔のブラウザには未実装でした。
代わりに、getYear() 関数を使っていましたが、この関数は ブラウザ問題がありました。
例えば、現在が 2013年だとすると、ブラウザや、そのバージョンによって、2013 を返すのは当然ですが、113 を返すブラウザもあります。
myYear = myD.getYear( ) ;
なお、あなたのブラウザは、myYear() は、『
』 がセットされています。
例えば、現在が 2013年だとすると、myYear には、
2013、もしくは、
113 のどちらかが セットされていることになります。
どちらかが入っているでは、困ります。
とにかく、正確な4桁の西暦にするために、
myYear4 = (myYear < 2000) ? myYear+1900 : myYear ;
としていました。
これは
三項演算子といって、
変数=(条件式)?真の値:偽の値 ;
という書式です。
(myYear < 2000) が条件式です。
あいだの 『
< 』 は、右と左を比較する 『
式 』です。
『
< 』以外にも、次の『
式 』があります。
A > B | A は B より大きい |
A < B | A は B より小さい |
A >= B | A は B 以上 |
A <= B | A は B 以下 |
A == B | A と B は等しい |
A != B | A と B は等しくない |
myYear4 = (myYear<2000) ? myYear+1900 : myYear ;
条件式が成り立っていれば、
真の値を変数へセット、成り立っていなければ、
偽の値を変数へセットします。
(条件式) → ( myYear < 2000 )
真の値 → myYear + 1900
偽の値 → myYear
つまり、年(myYear) が 2000未満だったら、myYear に 1900 を足した値 を myYear4 へ、セットします。違ったら、myYear を myYear4 へ、セットします。
これで、すべてのブラウザで、変数 myYear4 に 4桁の西暦を取得する手段をとっていました。