W3cubDocs

/JavaScript

Temporal.ZonedDateTime.prototype.withPlainTime()

Limited availability

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

The withPlainTime() method of Temporal.ZonedDateTime instances returns a new Temporal.ZonedDateTime object representing this date-time with the time part entirely replaced by the new time (in a form convertible by Temporal.PlainTime.from())

This method will replace all time properties, defaulting to 0 where properties are unspecified. If you only want to replace some of the time properties, use the with() method instead.

Syntax

withPlainTime()
withPlainTime(plainTime)

Parameters

plainTime Optional

A string, an object, or a Temporal.PlainTime instance representing the new time. It is converted to a Temporal.PlainTime object using the same algorithm as Temporal.PlainTime.from(). If not specified, the time part is set to the start of the day (which is usually 00:00:00 unless it doesn't exist due to offset transitions). Disambiguation always happens in the "compatible" mode; if you want to use a different mode, use the with() method instead.

Return value

A new Temporal.ZonedDateTime object, with the date part and the time zone copied from the original date-time and the time part replaced by the new time.

Examples

>

Using withPlainTime()

const zdt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:34:56[America/New_York]",
);

// You can pass a string
const newZDT = zdt.withPlainTime("13:45:00");
console.log(newZDT.toString()); // "2021-07-01T13:45:00-04:00[America/New_York]"

// You can only specify some time properties, and the rest default to 0;
// for the with() method, they would be copied from the original date-time
const newZDT2 = zdt.withPlainTime({ hour: 13 });
console.log(newZDT2.toString()); // "2021-07-01T13:00:00-04:00[America/New_York]"

// You can pass nothing to set the time to midnight
const newZDT3 = zdt.withPlainTime();
console.log(newZDT3.toString()); // "2021-07-01T00:00:00-04:00[America/New_York]"

// But, if midnight doesn't exist, it may be a different time
const zdt2 = Temporal.ZonedDateTime.from(
  "2015-10-18T12:00-02:00[America/Sao_Paulo]",
);
console.log(zdt2.withPlainTime().toString()); // "2015-10-18T01:00:00-02:00[America/Sao_Paulo]"

Specifications

Browser compatibility

Desktop Mobile Server
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
withPlainTime 144 144 139 No No 144 139 No No No 144 No ? 1.40 No

See also

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withPlainTime