Step.3 - 日付や時間を取得/表示します

現在の年月日時分秒を取り出して表示してみましょう。これだけだと、あまりに簡単すぎるので曜日も表示してみましょう。

Step テーマ

実行例



▲TOP

リスト


<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>

▲TOP
サンプルだけの HTMLは こちらへ

説明


● 現在日付を取得する

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] + "曜日" ;
上の式のように、文字と文字を足すというのは、文字をくっつけるということです。

"月" + "曜日" "月曜日" です。


▲TOP

関連参考リンク


▲TOP

三項演算子


年を取得する getFullYear() 関数は、大昔のブラウザには未実装でした。

代わりに、getYear() 関数を使っていましたが、この関数は ブラウザ問題がありました。
例えば、現在が 2013年だとすると、ブラウザや、そのバージョンによって、2013 を返すのは当然ですが、113 を返すブラウザもあります。

myYear = myD.getYear( ) ;

なお、あなたのブラウザは、myYear() は、『 』 がセットされています。


例えば、現在が 2013年だとすると、myYear には、2013、もしくは、113 のどちらかが セットされていることになります。
どちらかが入っているでは、困ります。

とにかく、正確な4桁の西暦にするために、

myYear4 = (myYear < 2000) ? myYear+1900 : myYear ;
としていました。

これは三項演算子といって、
変数=(条件式)?真の値:偽の値 ;
という書式です。

(myYear < 2000) が条件式です。

あいだの 『 < 』 は、右と左を比較する 『 』です。

< 』以外にも、次の『 』があります。
A > BA は B より大きい
A < BA は B より小さい
A >= BA は B 以上
A <= BA は B 以下
A == BA と B は等しい
A != BA と B は等しくない

myYear4 = (myYear<2000) ? myYear+1900 : myYear ;

条件式が成り立っていれば、真の値を変数へセット、成り立っていなければ、偽の値を変数へセットします。

(条件式) → ( myYear < 2000 )
真の値 → myYear + 1900
偽の値 → myYear
つまり、年(myYear) が 2000未満だったら、myYear に 1900 を足した値 を myYear4 へ、セットします。違ったら、myYear を myYear4 へ、セットします。

これで、すべてのブラウザで、変数 myYear4 に 4桁の西暦を取得する手段をとっていました。
▲TOP

Q&A 1

▲TOP