Date.now()

基线 广泛可用

此功能已得到充分建立,可在许多设备和浏览器版本上运行。自以下日期起,它在所有浏览器中都可用 2015 年 7 月.

Date.now() 静态方法返回自纪元以来的毫秒数,纪元定义为 1970 年 1 月 1 日凌晨,UTC。

尝试一下

语法

js
Date.now()

参数

无。

返回值

表示当前时间的时间戳(以毫秒为单位)的数字。

描述

降低的时间精度

为了提供对时序攻击和指纹识别的保护,Date.now() 的精度可能会根据浏览器设置进行舍入。在 Firefox 中,privacy.reduceTimerPrecision 首选项默认启用,默认值为 2 毫秒。您还可以启用 privacy.resistFingerprinting,在这种情况下,精度将为 100 毫秒或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds 的值(以较大者为准)。

例如,在降低的时间精度下,Date.now() 的结果始终是 2 的倍数,或者在启用 privacy.resistFingerprinting 时是 100(或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds)的倍数。

js
// reduced time precision (2ms) in Firefox 60
Date.now();
// Might be:
// 1519211809934
// 1519211810362
// 1519211811670
// …

// reduced time precision with `privacy.resistFingerprinting` enabled
Date.now();
// Might be:
// 1519129853500
// 1519129858900
// 1519129864400
// …

示例

测量经过的时间

您可以使用 Date.now() 获取以毫秒为单位的当前时间,然后减去以前的时间,以找出两次调用之间经过了多少时间。

js
const start = Date.now();
doSomeLongRunningProcess();
console.log(`Time elapsed: ${Date.now() - start} ms`);

对于更复杂的场景,您可能需要使用性能 API

规范

规范
ECMAScript 语言规范
# sec-date.now

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅