Temporal.ZonedDateTime.prototype.withPlainTime()
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 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
plainTimeOptional-
A string, an object, or a
Temporal.PlainTimeinstance representing the new time. It is converted to aTemporal.PlainTimeobject using the same algorithm asTemporal.PlainTime.from(). If not specified, the time part is set to the start of the day (which is usually00:00:00unless it doesn't exist due to offset transitions). Disambiguation always happens in the"compatible"mode; if you want to use a different mode, use thewith()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
| Specification |
|---|
| Temporal> # sec-temporal.zoneddatetime.prototype.withplaintime> |
Browser compatibility
Loading…