JavaScript: 日付や時刻をまとめて指定する

JavaScriptで日付・時刻をまとめて指定・設定するには、 Dateコンストラクタの引数に 指定したい年月日・時刻を渡します。

ここでは次の3つの指定方法について説明します。

  • 日付文字列で指定
  • 日時情報をカンマ区切りで指定
  • タイムスタンプで指定

日付文字列で指定する

"2020-07-01T00:00:00"のような日付文字列を指定します。

let dt1 = new Date("2021-07-01");
let dt2 = new Date("2021-07-01T00:00:00");

let dt3 = new Date("2021/07/01");
let dt4 = new Date("2021/07/01 00:00:00");
let dt5 = new Date("2021/07/01T00:00:00");  // 無効

console.log(dt1);
console.log(dt2);
console.log(dt3);
console.log(dt4);
console.log(dt5); // Invalid Date
実行結果
Date Thu Jul 01 2021 09:00:00 GMT+0900 (日本標準時)
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Invalid Date

日付文字列を指定する場合、 記述方法やブラウザの種類・バージョンによって解釈が異なるため、 注意が必要です。

特に年月日のみを指定した場合は、時刻が「00:00:00」となる場合と、 「09:00:00」となる場合があります(上の赤字部分参照)。
解釈が異ならないように時刻まで指定・設定する方が無難です。

日時情報をカンマ区切りで個別に指定する

「2021, 6, 1, 0, 8, 0, 0」のように、 年月日・時分秒ミリ秒をそれぞれカンマ区切りで指定します。

この場合は月の指定に注意してください。 「0-11」の範囲で指定します。「6」と指定した場合は「7」月となります。 間違って「12」と指定した場合は「翌年の1月」となります。

// 年月日まで
let dt1 = new Date(2021, 6, 1);
// 時分秒まで
let dt2 = new Date(2021, 6, 1, 0, 0, 0);
// ミリ秒まで
let dt3 = new Date(2021, 6, 1, 25, 0, 20, 500);

console.log(dt1);
console.log(dt2);
console.log(dt3);
実行結果
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Date Fri Jul 02 2021 01:00:20 GMT+0900 (日本標準時)

3番目の「dt3」では時間を「25」と指定しています。 こうした場合は自動的に繰り上げ・繰り下げが行われるため、 翌日の1時となります。

タイムスタンプで指定する

「1625065200000」のようにタイムスタンプ (1970年1月1日 00:00:00からの経過ミリ秒)を指定します。

let dt1 = new Date(1625065200000);
console.log(dt1);
実行結果
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)

タイムスタンプを取得する場合はDateオブジェクトの getTimeメソッドを使用します。

JavaScript入門