Temporal.PlainTime.from()
Baseline Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
The Temporal.PlainTime.from() static method creates a new Temporal.PlainTime object from another Temporal.PlainTime object, an object with time properties, or an RFC 9557 string.
Syntax
Temporal.PlainTime.from(info) Temporal.PlainTime.from(info, options)
Parameters
-
info - One of the following:
- A
Temporal.PlainTimeinstance, which creates a copy of the instance. - A
Temporal.PlainDateTimeinstance, which provides the time in the same fashion asTemporal.PlainDateTime.prototype.toPlainTime(). - A
Temporal.ZonedDateTimeinstance, which provides the time in the same fashion asTemporal.ZonedDateTime.prototype.toPlainTime(). - An RFC 9557 string containing a time.
- An object containing at least one of the following properties (in the order they are retrieved and validated):
They are truncated to be integers. Out-of-range values are handled by the
overflowoption.
- A
-
optionsOptional - An object containing the following property:
-
overflowOptional - A string specifying the behavior when a time component is out of range (when using the object
info). Possible values are:-
"constrain"(default) - The time component is clamped to the valid range.
-
"reject" - A
RangeErroris thrown if the time component is out of range.
-
-
Return value
A new Temporal.PlainTime object, representing the time specified by info.
Exceptions
-
TypeError - Thrown in one of the following cases:
-
infois not an object with at least one recognized property or a string. -
optionsis not an object orundefined.
-
-
RangeError - Thrown if the provided numerical properties are out of range, and
options.overflowis set to"reject".
Examples
Creating a PlainTime from an object
const t1 = Temporal.PlainTime.from({ hour: 0 });
console.log(t1.toString()); // "00:00:00"
const t2 = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56 });
console.log(t2.toString()); // "12:34:56"
const t3 = Temporal.PlainTime.from({
hour: 12,
minute: 34,
second: 56,
millisecond: 123,
microsecond: 456,
nanosecond: 789,
});
console.log(t3.toString()); // "12:34:56.123456789"
Controlling overflow behavior
By default, out-of-range values are clamped to the valid range:
const t1 = Temporal.PlainTime.from({ hour: 25 });
console.log(t1.toString()); // "23:00:00"
const t2 = Temporal.PlainTime.from({ hour: 25, minute: 60 });
console.log(t2.toString()); // "23:59:00"
You can change this behavior to throw an error instead:
Temporal.PlainTime.from({ hour: 25 }, { overflow: "reject" });
// RangeError: time value "hour" not in 0..23: 25
Creating a PlainTime from a string
const t1 = Temporal.PlainTime.from("12:34:56.123456789");
console.log(t1.toLocaleString("en-US", { timeStyle: "full" }));
// 12:34:56 PM
Creating a PlainTime from another Temporal instance
const dt = Temporal.PlainDateTime.from("2021-07-01T12:00");
const t = Temporal.PlainTime.from(dt);
console.log(t.toString()); // "12:00:00"
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T00:00+08:00[Asia/Shanghai]",
);
const t2 = Temporal.PlainTime.from(zdt);
console.log(t2.toString()); // "00:00:00"
const t3 = Temporal.PlainTime.from(t);
console.log(t3.toString()); // "12:00:00"
Specifications
| Specification |
|---|
| Temporal # sec-temporal.plaintime.from |
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 | |
from |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
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/PlainTime/from