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

構文

var timeInMs = Date.now();

戻り値

"1 January 1970 00:00:00 UTC" (UNIXエポック) からの経過時間をミリ秒単位で表す 数値

説明

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() の時間精度;
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 の定義
ドラフト  

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 5Edge 完全対応 ありFirefox 完全対応 3IE 完全対応 9Opera 完全対応 10.5Safari 完全対応 4WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報

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

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