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
plainTime
Optional-
A string, an object, or a
Temporal.PlainTime
instance representing the new time. It is converted to aTemporal.PlainTime
object 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: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 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 proposal # sec-temporal.zoneddatetime.prototype.withplaintime |
Browser compatibility
BCD tables only load in the browser