Dateオブジェクトを使う。
オブジェクトの使い方は使用例を見ながら慣れていくこと。
次は、スクリプトとその結果である:
UTC+0900とは、日本時間はUTC(世界協定時刻)から+9時間ずれていることを示している(示されている時刻[13:29:52]がUTCではない)。
| スクリプト | 結果 |
<script type="text/javascript">
<!--
var today = new Date();
var year = today.getYear();
var month = today.getMonth();
var date = today.getDate();
var day = today.getDay();
document.write("today = ", today,"<br>");
document.write("年 = ", year, "<br>");
document.write("月 = ", month, "<br>");
document.write("日 = ", date, "<br>");
document.write("曜日 = ", day,"<br>");
// -->
</script>
|
today = Sat Jun 16 13:29:52 UTC+0900 2001 年 = 2001 月 = 5 日 = 16 曜日 = 6 |
documentオブジェクトのwrite()メソッドを使っていることに気づきましたか?
スクリプト1行目のvar today = new Date();では、変数todayにDateオブジェクトのインスタンス(instance)を新たに生成して格納している。
2行目のyear = today.getYear()は、Dateオブジェクトから年を取得するメソッド(方法) getYear() を使って年を取得して変数yearに代入している。
同様に、getMonth() は、Dateオブジェクトから月を、getDate() は、Dateオブジェクトから日を、getDay() は、Dateオブジェクトから曜日を取得するメソッドである。
問題は、getMonth()とgetDay()の出力結果である。
これらもメソッドが返す値は数字であるが、次の表のように理解すべきである:
getMonth() | 実際の月 | getDay() | 実際の曜日 |
| 0 | 1月 | 0 | 月曜 |
| 1 | 2月 | 1 | 火曜 |
| 2 | 3月 | 2 | 水曜 |
| 3 | 4月 | 3 | 木曜 |
| 4 | 5月 | 4 | 金曜 |
| 5 | 6月 | 5 | 土曜 |
| 6 | 7月 | 6 | 日曜 |
| 7 | 8月 | ||
| 8 | 9月 | ||
| 9 | 10月 | ||
| 10 | 11月 | ||
| 11 | 12月 |
{〜}で囲った部分にある処理スクリプトを実行する。
最後のelse文はそれまでの条件式に合致しない「その他の場合」を処理するブロックであり、省いてもよい。
| 分岐条件 | 多重分岐 | 一般多重分岐 |
if (条件式A) {
文1;
文2;
...
} else {
文3;
文4;
...
}
|
if (条件式A) {
文a1;
文a2;
...
} else if (条件式B) {
文b3;
文b4;
...
} else {
文5;
文6;
...
}
|
if (条件式A) {
文a1;
文a2;
...
} else if (条件式B) {
文b3;
文b4;
...
} ...
...
...
} else if (条件式Z) {
文z5;
文z6;
...
} else {
文7;
文8;
...
}
|
DateインスタンスからメソッドgetMonth()で得られた数値に応じて、月名を変数に代入する次のスクリプトを実行してみよ。
記号 == は左辺の式と右辺の式の値が等しいかどうかを比較し、等しければtrue、等しくなければfalseを返す比較演算子の1つである:
<script type="text/javascript">
<!--
var today = new Date();
var year = today.getYear();
var num_month = today.getMonth();
var month;
var date = today.getDate();
var num_day = today.getDay();
var day;
if (num_month == 0){
month = "1月";
} else if (num_month == 1){
month = "2月";
} else if (num_month == 2){
month = "3月";
} else if (num_month == 3){
month = "4月";
} else if (num_month == 4){
month = "5月";
} else if (num_month == 5){
month = "6月";
} else if (num_month == 6){
month = "7月";
} else if (num_month == 7){
month = "8月";
} else if (num_month == 8){
month = "9月";
} else if (num_month == 9){
month = "10月";
} else if (num_month == 10){
month = "11月";
} else {
month = "12月";
}
document.write("today = ", today,"<br>");
document.write("年 = ", year, "<br>");
document.write("月 = ", month, "<br>");
document.write("日 = ", date, "<br>");
document.write("曜日 = ", day,"<br>");
// -->
</script>
|
getDay()メソッドで得られる数値に応じて、曜日変数dayに月曜〜日曜を代入し、正しく日付情報を表示するJavascript を含んだHTMLファイル date01.html を完成せよ。
break;を使っていることに注意する。
| Switch分岐条件構文 |
switch (変数) {
case: 値A:
文a1;
文a2;
...;
break;
case: 値B:
文b1;
文b2;
...;
break;
....
....
case: 値Z:
文z1;
文z2;
...;
break;
default:
文3;
文4;
...;
}
|
DateインスタンスからメソッドgetMonth()で得られた数値に応じて、Switch文で月名を変数に代入する次のスクリプトを実行してみよ。
<script type="text/javascript">
<!--
var today = new Date();
var year = today.getYear();
var num_month = today.getMonth();
var month;
var date = today.getDate();
var num_day = today.getDay();
var day;
switch (num_month){
case 0:
month = "1月";
break;
case 1:
month = "2月";
break;
case 2:
month = "3月";
break;
case 3:
month = "4月";
break;
case 4:
month = "5月";
break;
case 5:
month = "6月";
break;
case 6:
month = "7月";
break;
case 7:
month = "8月";
break;
case 8:
month = "9月";
break;
case 9:
month = "10月";
break;
case 10:
month = "11月";
break;
default:
month = "12月";
}
document.write("today = ", today,"<br>");
document.write("年 = ", year, "<br>");
document.write("月 = ", month, "<br>");
document.write("日 = ", date, "<br>");
document.write("曜日 = ", day,"<br>");
// -->
</script>
|
getDay()メソッドで得られる数値に応じて、曜日変数dayに月曜〜日曜を代入し、正しく日付情報を表示するJavascript を含んだHTMLファイル date02.html を完成せよ。