JavaScript: 日付文字列からタイムスタンプを取得 parse
JavaScriptでは日付文字列からタイムスタンプを取得することもできます。 その場合DateオブジェクトのgetTimeメソッドを使わずに、 parseメソッドを使うと便利です。
次のサンプルコードでは、parseメソッドを使ってタイムスタンプを取得しています。
let ts1 = Date.parse("2021-07-01"); let ts2 = Date.parse("2021-07-01T00:00:00"); let ts3 = Date.parse("2021/07/01"); let ts4 = Date.parse("2021/07/01 00:00:00"); let ts5 = Date.parse("2021/07/01T00:00:00"); // 無効 console.log(ts1); console.log(new Date(ts1)); console.log(ts2); console.log(new Date(ts2)); console.log(ts3); console.log(new Date(ts3)); console.log(ts4); console.log(new Date(ts4)); console.log(ts5); // NaN console.log(new Date(ts5)); // Invalid Date
実行結果
1625097600000 Date Thu Jul 01 2021 09:00:00 GMT+0900 (日本標準時) 1625065200000 Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時) 1625065200000 Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時) 1625065200000 Date Thu Jul 01 2021 00:00:00 GMT+0900 (日本標準時) NaN Invalid Date
parseメソッドでタイムスタンプを取得する際の注意点
parseメソッドを使って文字列からタイムスタンプを取得する際は、 ブラウザの種類やバージョンによる解釈の違いに注意する必要があります。
例えば1行目の「Date.parse("2021-07-01");」では、 時間が「09:00:00」になっています。世界標準時刻との差の9時間が勝手にプラスされています。
一方2行目の「Date.parse("2021-07-01T00:00:00")」では時刻まで指定していますから、 時間も「00:00:00」になっています。
このように、文字列を使って日時を指定する場合、 指定方法やブラウザによって解釈が異なります。 ですから自分が意図しているように解釈されているかを 確認しながらコーディングする必要があります。