现在位置: 首页 > JavaScript 参考手册 > 正文

JavaScript Date.now() 方法

Date 对象参考手册 JavaScript Date 对象

实例

返回当前时间的毫秒数:

const currentTime = Date.now();
console.log(currentTime); // 输出类似:1633072800000

尝试一下 »

在这个例子中,currentTime变量将保存当前时间的毫秒数。每次运行这段代码时,输出的值都会不同,因为它总是返回当前的时间。


定义和用法

Date.now()Date 对象的一个静态方法,它返回当前时间的毫秒数。

Date.now() 方法非常有用,尤其是在需要测量时间间隔或生成唯一的时间戳时。

Date.now() 方法返回自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来的毫秒数,这个时间点被称为 "Unix纪元" 或 "Unix时间戳" 的起点。

语法

Date.now()

返回值

Date.now() 返回一个数字,表示当前时间与 Unix 纪元之间的毫秒数。

浏览器支持

Internet ExplorerFirefoxOperaGoogle ChromeSafari

所有主要浏览器都支持 getDate() 方法


Date.now()new Date().getTime() 的区别

你可能已经知道,new Date().getTime()也可以用来获取当前时间的毫秒数。那么,Date.now()new Date().getTime()之间有什么区别呢?

区别

  1. 性能Date.now()new Date().getTime()更高效。因为Date.now()直接返回当前时间的毫秒数,而new Date().getTime()需要先创建一个Date对象,然后再调用getTime()方法。

  2. 代码简洁性Date.now()的代码更简洁,因为它不需要创建Date对象。

实例

// 使用 Date.now()
const time1 = Date.now();

// 使用 new Date().getTime()
const time2 = new Date().getTime();

console.log(time1 === time2); // 输出:true

尽管两者的结果相同,但在性能要求较高的场景下,推荐使用Date.now()


Date.now() 的应用场景

Date.now()方法在实际开发中有多种应用场景,以下是一些常见的例子:

测量代码执行时间

你可以使用Date.now()来测量某段代码的执行时间。

实例

const startTime = Date.now();

// 模拟一些耗时操作
for (let i = 0; i < 1000000; i++) {
    // 一些计算
}

const endTime = Date.now();
console.log(`代码执行时间:${endTime - startTime} 毫秒`);

在这个例子中,endTime - startTime将给出代码执行所花费的时间(以毫秒为单位)。

生成唯一的时间戳

Date.now()可以用来生成唯一的时间戳,通常用于标识某个事件或操作。

实例

const uniqueTimestamp = Date.now();
console.log(uniqueTimestamp); // 输出当前时间的毫秒数

由于Date.now()返回的值是唯一的(至少在毫秒级别上是唯一的),因此它可以用来生成唯一标识符。

缓存控制

在 Web 开发中,Date.now() 可以用于生成缓存控制的时间戳,以确保浏览器不会使用过期的缓存。

实例

const cacheBuster = Date.now();
const url = `https://example.com/data.json?cache=${cacheBuster}`;

在这个例子中,每次请求都会附带一个不同的时间戳,从而避免浏览器使用缓存的旧数据。


注意事项

虽然Date.now()非常有用,但在使用时需要注意以下几点:

  1. 精度Date.now()返回的时间精度是毫秒级别的。如果需要更高的精度(如微秒级别),可以使用performance.now()

  2. 时区Date.now()返回的时间是基于UTC的,不受本地时区的影响。如果你需要处理本地时间,可以使用new Date()

  3. 兼容性Date.now()在大多数现代浏览器中都得到了支持,但在一些非常旧的浏览器中可能不支持。如果你需要兼容这些浏览器,可以使用new Date().getTime()作为替代方案。


Date 对象参考手册 JavaScript Date 对象