Temporal.ZonedDateTime.prototype.epochMilliseconds

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

Temporal.ZonedDateTime 实例的 epochMilliseconds 访问器属性返回一个整数,表示自 Unix 纪元(1970 年 1 月 1 日午夜,UTC)到此瞬间所经过的毫秒数。它等同于将 epochNanoseconds 除以 1e6 并向下取整。

epochMilliseconds 的设置器为 undefined。你无法直接更改此属性。要创建一个具有所需新 epochMilliseconds 值的新 Temporal.ZonedDateTime 对象,请参见下文。

示例

使用 epochMilliseconds

js
const zdt = Temporal.ZonedDateTime.from("2021-08-01T12:34:56.789Z[UTC]");
console.log(zdt.epochMilliseconds); // 1627821296789

const zdt2 = Temporal.ZonedDateTime.from("1969-08-01T12:34:56.789Z[UTC]");
console.log(zdt2.epochMilliseconds); // -13173903211

从 epochMilliseconds 值创建 ZonedDateTime 对象

你可以通过首先使用 Temporal.Instant.fromEpochMilliseconds() 构造一个 Temporal.Instant 对象,然后使用 Temporal.Instant.prototype.toZonedDateTimeISO() 将其转换为 Temporal.ZonedDateTime 对象来从 epochMilliseconds 值创建 Temporal.ZonedDateTime 对象。

js
const epochMilliseconds = 1627821296789;
const instant = Temporal.Instant.fromEpochMilliseconds(epochMilliseconds);
const zdt = instant.toZonedDateTimeISO("UTC");
console.log(zdt.toString()); // 2021-08-01T12:34:56.789+00:00[UTC]

或者,使用 Temporal.ZonedDateTime() 构造函数,但首先将毫秒转换为纳秒。

js
const epochMilliseconds = 1627821296789;
const epochNanoseconds = BigInt(epochMilliseconds) * 1_000_000n;
const zdt = new Temporal.ZonedDateTime(epochNanoseconds, "UTC");
console.log(zdt.toString()); // 2021-08-01T12:34:56.789+00:00[UTC]

规范

规范
Temporal
# sec-get-temporal.zoneddatetime.prototype.epochmilliseconds

浏览器兼容性

另见