Temporal.PlainDateTime.from()
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 Temporal.PlainDateTime.from()
static method creates a new Temporal.PlainDateTime
object from another Temporal.PlainDateTime
object, an object with date and time properties, or an RFC 9557 string.
Syntax
Temporal.PlainDateTime.from(info)
Temporal.PlainDateTime.from(info, options)
Parameters
info
-
One of the following:
- A
Temporal.PlainDateTime
instance, which creates a copy of the instance. - An RFC 9557 string containing a date, optionally a time, and optionally a calendar.
- An object containing properties that are recognized by either
Temporal.PlainDate.from()
(calendar
,era
,eraYear
,year
,month
,monthCode
,day
) orTemporal.PlainTime.from()
(hour
,minute
,second
,millisecond
,microsecond
,nanosecond
). The info should explicitly specify a year (asyear
orera
anderaYear
), a month (asmonth
ormonthCode
), and a day; others are optional and will be set to their default values.
- A
options
Optional-
An object containing the following property:
overflow
Optional-
A string specifying the behavior when a date component is out of range (when using the object
info
). Possible values are:"constrain"
(default)-
The date component is clamped to the valid range.
"reject"
-
A
RangeError
is thrown if the date component is out of range.
Return value
A new Temporal.PlainDateTime
object, representing the date and time specified by info
in the specified calendar
.
Exceptions
TypeError
-
Thrown in one of the following cases:
info
is not an object or a string.options
is not an object orundefined
.- The provided properties are insufficient to unambiguously determine a date. You usually need to provide a
year
(orera
anderaYear
), amonth
(ormonthCode
), and aday
.
RangeError
-
Thrown in one of the following cases:
- The provided properties that specify the same component are inconsistent.
- The provided non-numerical properties are not valid; for example, if
monthCode
is never a valid month code in this calendar. - The provided numerical properties are out of range, and
options.overflow
is set to"reject"
.
Examples
Creating a PlainDateTime from an object
// Year + month + day + hour + minute + second
const dt = Temporal.PlainDateTime.from({
year: 2021,
month: 7,
day: 1,
hour: 12,
minute: 34,
second: 56,
});
console.log(dt.toString()); // "2021-07-01T12:34:56"
Creating a PlainDateTime from a string
const dt = Temporal.PlainDateTime.from("2021-07-01T12:34:56");
console.log(dt.toLocaleString()); // "7/1/2021, 12:34:56 PM" (assuming en-US locale)
For more examples, especially regarding different calendars and overflow settings, see Temporal.PlainDate.from()
and Temporal.PlainTime.from()
.
Specifications
Specification |
---|
Temporal proposal # sec-temporal.plaindatetime.from |
Browser compatibility
BCD tables only load in the browser