Date.now() メソッドは、UTC (協定世界時) での 1970 年 1 月 1 日 0 時 0 分 0 秒 から現在までの経過時間をミリ秒単位で返します。

構文

var timeInMs = Date.now();

戻り値

"1 January 1970 00:00:00 UTC" からの経過時間をミリ秒単位で表す 数値

説明

now()Date の静的メソッドであるため、常に Date.now() を使用してください。

時間の精度の低下

タイミング攻撃や Fingerprint を防止するために、Date.now() の精度はブラウザーの設定によって丸め込まれるかもしれません。Firefox では、privacy.reduceTimerPrecision 設定がデフォルトで有効になっており、Firefox 59 では 20 us、Firefox 60 では 2ms となっています。

 

// Firefox 60 で低下した時間精度 (2ms)
Date.now()
// 1519211809934
// 1519211810362
// 1519211811670
// ...


// `privacy.resistFingerprinting` 設定が有効な場合の Date.now() の時間精度;
// 1519129853500
// 1519129858900
// 1519129864400
// ...

Firefox では、privacy.resistFingerprinting を設定することで、精度が 100 ms か privacy.resistFingerprinting.reduceTimerPrecision.microseconds のどちらか大きな値となります。

 

互換コード

このメソッドは ECMA-262 第 5 版で標準化されました。このメソッドをサポートするよう更新されていないエンジンで、次の互換コードを使用することにより、実装の欠落を補うことができます:

if (!Date.now) {
  Date.now = function now() {
    return new Date().getTime();
  };
}

仕様

仕様書 策定状況 備考
ECMAScript 5.1 (ECMA-262)
Date.now の定義
標準 初期定義。JavaScript 1.5 で実装。
ECMAScript 2015 (6th Edition, ECMA-262)
Date.now の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Date.now の定義
ドラフト  

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 5 3.0 (1.9) 9 10.50 4
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

このページの貢献者: toVersus, Marsf, mitsuba-clover, teoli, ethertank
最終更新者: toVersus,