JavaScript 入門 | 標準オブジェクト | Date オブジェクト

JavaScript における日付表現

JavaScript では Date オブジェクトを使用して、刻々と変化する時刻と日付に関する情報を簡単に取得できる。
Date オブジェクトは年月日、時分秒の情報に加えて、ミリ秒 (millisecond) の情報も提供する。

JavaScript で日付と時刻を表す値の範囲は次のとおりである。

  1. 年 (year): 1900 年 (00) ~ 2018 年 (99)
  2. 月 (month): 1 月 (0) ~ 12 月 (11)
  3. 日 (day): 1 日 (1) ~ 31 日 (31)
  4. 時 (hours): 0 時 (0) ~ 23 時 (23)
  5. 分 (minutes): 0 分 (0) ~ 59 分 (59)
  6. 秒 (seconds): 0 秒 (0) ~ 59 秒 (59)

JavaScript で月 (month) を表すときは、1 月が 0、12 月が 11 と表される点に注意する必要がある。

Date オブジェクト

JavaScript で Date オブジェクトを初期化する方法は次のとおりである。

  1. new Date()
  2. new Date(“日付を表す文字列”)
  3. new Date(ミリ秒)
  4. 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 で日付を表現できる形式は次のとおりである。

  1. ISO 日付形式
  2. Long 日付形式
  3. Short 日付形式
  4. 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)");