JavaScript: 文字列を日付・時刻(Date型)に変換する

JavaScriptで文字列を日付・時刻(Date型)に変換する場合は、 Dateオブジェクトを利用します。

日付は「yyyy/mm/dd」形式のスラッシュ(/)区切りか 「yyyy-mm-dd」のハイフン(-)区切りで記述します。 半角スペース区切りでも大丈夫です。
時刻は「hh:mm:ss」形式のコロン(:)区切りで記述します。

let dt1 = new Date("2021/07/01");
let dt2 = new Date("2021-07-01");

let dt3 = new Date("2021/07/01 00:00:00");
let dt4 = new Date("2021-07-01 00:00:00");

文字列をDate型に変換する場合の注意点

文字列を日付・時刻(Date型)に変換する場合、 ブラウザの種類やバージョンによって解釈が異なる場合があります。

例えば、次のコードはどちらも「2021年7月1日」を指定しています。
ですが時刻がスラッシュ区切りとハイフン区切りでは異なって解釈されています。

// スラッシュ区切り
console.log(new Date('2021/07/01'));

// ハイフン区切り
console.log(new Date('2021-07-01'));
実行結果 Firefox
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Date Thu Jul 01 2021 09:00:00 GMT+0900 (日本標準時)

このような場合は、日付だけでなく時刻まで含めて指定すると 同じように解釈されます。

// スラッシュ区切り
console.log(new Date('2021/07/01 00:00:00'));

// ハイフン区切り
console.log(new Date('2021-07-01 00:00:00'));
実行結果 Firefox
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)
Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時)

このように、文字列をDate型に変換する場合は、 自分の意図通りに解釈されているかを確認しながらコーディングを行う必要があります。

JavaScript入門