Date.prototype.valueOf()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Date 实例的 valueOf() 方法返回自 纪元(定义为 UTC 1970 年 1 月 1 日午夜)以来该日期的毫秒数。

试一试

const date1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));

console.log(date1.valueOf());
// Expected output: 823230245000

const date2 = new Date("02 Feb 1996 03:04:05 GMT");

console.log(date2.valueOf());
// Expected output: 823230245000

语法

js
valueOf()

参数

无。

返回值

一个表示该日期的(以毫秒为单位的)时间戳 的数字。如果日期无效,则返回 NaN

描述

valueOf() 方法是 类型转换协议 的一部分。由于 Date 对象有一个 [Symbol.toPrimitive]() 方法,当 Date 对象被隐式转换为数字 时,该方法始终优先于 valueOf()。但是,Date.prototype[Symbol.toPrimitive]() 在内部仍然会调用 this.valueOf()

Date 对象重写了 ObjectvalueOf() 方法。Date.prototype.valueOf() 返回日期的时间戳,这在功能上等同于 Date.prototype.getTime() 方法。

示例

使用 valueOf()

js
const d = new Date(0); // 1970-01-01T00:00:00.000Z
console.log(d.valueOf()); // 0

规范

规范
ECMAScript® 2026 语言规范
# sec-date.prototype.valueof

浏览器兼容性

另见