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メソッドを使用します。