[JavaScript] ISO形式の日付をミリ秒に変換する方法


ISO形式の日付データをミリ秒にしなければならないケースといえば、UNIX時間の参照や処理経過時間の計測などだろうか。UNIX時間においては、秒単位であるが、まず日付データをミリ秒に変換する工程が必要だ。それから処理経過時間の計測では、差分を算出するためミリ秒に変換することもあるだろう。

このエントリーでは、ISO 形式の日付をミリ秒に変換するソリューションについて共有したい。

ミリ秒に変換する

Date.parse()

const result = Date.parse('2021-10-13T14:00:00+0900');
console.log(result);
>> 1634101200000

Date.parse に渡した文字列(ISO形式)に対する、1970 年 1 月 1 日 00:00:00 UTC からの経過ミリ秒で変換している。

Date.prototype.getTime()

const date = new Date('2021-10-13T14:00:00+0900');
const result = date.getTime();
console.log(result);
>> 1634101200000

getTime による 1970 年 1 月 1 日 00:00:00 UTC からの経過ミリ秒で変換している。

数値型に変換するショートハンド

const result = +new Date('2021-10-13T14:00:00+0900');
console.log(result);
>> 1634101200000

+ 記号(ショートハンド)によって Date オブジェクトを数値型に変換している。

UNIX時間に変換する

UNIX時間は、UTC時刻における1970年1月1日 00:00:00 からの経過秒数で表される。つまりミリ秒を秒に変換できれば目的が果たされる。

では、その方法を見ていこう。

上述の手段によってミリ秒を参照できているから、それを 1000 で割ればよい。

const result = Date.parse('2021-10-13T14:00:00+0900');
const unixtime = result / 1000;
console.log(unixtime);
>> 1634101200

Leave a Reply

Your email address will not be published. Required fields are marked *