Date.now()
The static Date.now()
method returns the number of
milliseconds elapsed since January 1, 1970 00:00:00 UTC.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
var timeInMs = Date.now();
Return value
A Number
representing the milliseconds elapsed since the UNIX epoch.
Polyfill
This method was standardized in ECMA-262 5th edition. Engines which have not been updated to support this method can work around the absence of this method using the following shim:
if (!Date.now) {
Date.now = function now() {
return new Date().getTime();
};
}
Examples
Reduced time precision
To offer protection against timing attacks and fingerprinting, the precision of
Date.now()
might get rounded depending on browser settings.
In Firefox, the privacy.reduceTimerPrecision
preference is enabled by
default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.
// reduced time precision (2ms) in Firefox 60
Date.now()
// 1519211809934
// 1519211810362
// 1519211811670
// ...
// reduced time precision with `privacy.resistFingerprinting` enabled
Date.now();
// 1519129853500
// 1519129858900
// 1519129864400
// ...
In Firefox, you can also enable privacy.resistFingerprinting
, the
precision will be 100ms or the value of
privacy.resistFingerprinting.reduceTimerPrecision.microseconds
, whichever
is larger.
Specifications
Browser compatibility
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
See also
Performance.now()
— provides timestamps with sub-millisecond resolution for use in measuring web page performanceconsole.time()
/console.timeEnd()