JavaScript 入門 | 標準オブジェクト | Date オブジェクト
JavaScript における日付表現
JavaScript では Date オブジェクトを使用して、刻々と変化する時刻と日付に関する情報を簡単に取得できる。
Date オブジェクトは年月日、時分秒の情報に加えて、ミリ秒 (millisecond) の情報も提供する。
JavaScript で日付と時刻を表す値の範囲は次のとおりである。
- 年 (year): 1900 年 (00) ~ 2018 年 (99)
- 月 (month): 1 月 (0) ~ 12 月 (11)
- 日 (day): 1 日 (1) ~ 31 日 (31)
- 時 (hours): 0 時 (0) ~ 23 時 (23)
- 分 (minutes): 0 分 (0) ~ 59 分 (59)
- 秒 (seconds): 0 秒 (0) ~ 59 秒 (59)
JavaScript で月 (month) を表すときは、1 月が 0、12 月が 11 と表される点に注意する必要がある。
Date オブジェクト
JavaScript で Date オブジェクトを初期化する方法は次のとおりである。
- new Date()
- new Date(“日付を表す文字列”)
- new Date(ミリ秒)
- new Date(年, 月, 日, 時, 分, 秒, ミリ秒)
Date オブジェクトを作成するときに引数を何も渡さない場合、現在の日付と時刻を持つ Date オブジェクトを作成する。
var date = new Date(); // Date オブジェクト作成
document.write(date);
Date オブジェクトを作成するときに引数が渡されると、その形式に応じて特定の日付と時刻を指す Date オブジェクトを作成する。
new Date("December 14, 1977 13:30:00"); // 日付を表す文字列
new Date(80000000); // 1970 年 1 月 1 日 0 時から該当ミリ秒だけ経過した日付
new Date(16, 5, 25); // 3 つの数値で表す日付で、時刻は自動的に 0 時 0 分 0 秒に設定される。
new Date(16, 5, 25, 15, 40, 0); // 7 つの数値で表す日付
new Date(2016, 5, 25, 15, 40, 0); // 2000 年代を表記したい場合は年をすべて表記する必要がある。
JavaScript における日付計算のすべての基準は、1970 年 1 月 1 日 00:00:00 (UTC, 協定世界時) からである。また、1 日は 86,400,000 ミリ秒として計算される。
JavaScript の日付形式 (date format)
JavaScript で日付を表現できる形式は次のとおりである。
- ISO 日付形式
- Long 日付形式
- Short 日付形式
- Full 日付形式
ISO 8601 は、日付と時刻を表す国際標準形式である。
構文
YYYY-MM-DDTHH:MM:SS // T は UTC (協定世界時) を表す文字で、時刻まで表すときは必ず使用する。
YYYY-MM-DD
YYYY-MM
new Date("1977-12-14T13:30:00"); // 日付と時刻まで表す。
new Date("1977-12-14"); // 時刻が省略されると自動的に 09:00:00 に設定される。
new Date("1977-12"); // 日が省略されると自動的に 1 日に設定される。
new Date("1977"); // 月が省略されると自動的に 1 月に設定される。
Long 日付形式
構文
MMM DD YYYY
DD MMM YYYY
new Date("Feb 19 1982"); // MMM DD YYYY
new Date("19 Feb 1982"); // DD MMM YYYY
new Date("February 19 1982"); // 月の省略形だけでなく完全な単語も認識する。
new Date("FEBRUARY, 19, 1982"); // カンマは無視され、大文字小文字は区別しない。
Short 日付形式
構文
MM/DD/YYYY
YYYY/MM/DD
new Date("02/19/1982"); // MM/DD/YYYY
new Date("1982/02/19"); // YYYY/MM/DD
ISO 日付形式と short 日付形式では、必ず月日順で日付が出る必要があり、日月順で出た日付は JavaScript が正しく認識できない。
Full 日付形式
JavaScript で使用する日付形式で表現された文字列も日付として認識する。
Wed May 25 2016 17:00:31 GMT+0900
new Date("Wed May 25 2016 17:00:00 GMT+0900 (Seoul Time)");
// GMT が現在の国と異なる時刻は、現在の国の GMT に変換されて表現される。
new Date("Wed May 25 2016 17:00:00 GMT-0500 (New York Time)");