Temporal.ZonedDateTime.prototype.epochMilliseconds

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The epochMilliseconds accessor property of Temporal.ZonedDateTime instances returns an integer representing the number of milliseconds elapsed since the Unix epoch (midnight at the beginning of January 1, 1970, UTC) to this instant. It is equivalent to dividing epochNanoseconds by 1e6 and flooring the result.

The set accessor of epochMilliseconds is undefined. You cannot change this property directly. To create a new Temporal.ZonedDateTime object with the desired new epochMilliseconds value, use the add() or subtract() method with the appropriate duration.

Examples

Using epochMilliseconds

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

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

Creating a ZonedDateTime object from an epochMilliseconds value

You can create a Temporal.ZonedDateTime object from an epochMilliseconds value by first constructing a Temporal.Instant object using Temporal.Instant.fromEpochMilliseconds(), and then converting it to a Temporal.ZonedDateTime object using Temporal.Instant.prototype.toZonedDateTimeISO():

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]

Alternatively, use the Temporal.ZonedDateTime() constructor, but convert the milliseconds to nanoseconds first:

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

Specifications

Specification
Temporal proposal
# sec-get-temporal.zoneddatetime.prototype.epochmilliseconds

Browser compatibility

BCD tables only load in the browser

See also