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」になっています。

このように、文字列を使って日時を指定する場合、 指定方法やブラウザによって解釈が異なります。 ですから自分が意図しているように解釈されているかを 確認しながらコーディングする必要があります。

JavaScript入門