Temporal.PlainDate.from()
Baseline Ограниченная доступность
Эта функция не является Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Статический метод Temporal.PlainDate.from() создает новый объект Temporal.PlainDate из другого объекта Temporal.PlainDate, объекта со свойствами даты или строки RFC 9557.
Синтаксис
Temporal.PlainDate.from(info) Temporal.PlainDate.from(info, options)
Параметры
-
info - Одна из следующих опций:
- Экземпляр
Temporal.PlainDate, который создает копию экземпляра. - Экземпляр
Temporal.PlainDateTime, который предоставляет календарную дату таким же образом, какTemporal.PlainDateTime.prototype.toPlainDate(). - Экземпляр
Temporal.ZonedDateTime, который предоставляет календарную дату таким же образом, какTemporal.ZonedDateTime.prototype.toPlainDate(). - Строка RFC 9557, содержащая дату и, возможно, календарь.
- Объект, содержащий следующие свойства (в порядке их получения и проверки):
-
calendarНеобязательно - Строка, соответствующая свойству
calendarId. См.Intl.supportedValuesOf()для списка часто поддерживаемых типов календарей. По умолчанию"iso8601". Все остальные свойства интерпретируются в этой календарной системе (в отличие от конструктораTemporal.PlainDate(), который интерпретирует значения в системе календаря ISO). -
day - Целое число, соответствующее свойству
day. Должно быть положительным независимо от параметраoverflow. -
eraиeraYear - Строка и целое число, соответствующие свойствам
eraиeraYear. Используются только в том случае, если календарная система имеет эры.eraиeraYearдолжны быть предоставлены одновременно. Должно быть предоставлено по крайней мере одно изeraYear(вместе сera) илиyear. Если предоставлены всеera,eraYearиyear, они должны быть согласованы. -
month - Соответствует свойству
month. Должно быть положительным независимо от параметраoverflow. Должно быть предоставлено по крайней мере одно изmonthилиmonthCode. Если предоставлены обаmonthиmonthCode, они должны быть согласованы. -
monthCode - Соответствует свойству
monthCode. Должно быть предоставлено по крайней мере одно изmonthилиmonthCode. Если предоставлены обаmonthиmonthCode, они должны быть согласованы. -
year - Соответствует свойству
year. Должно быть предоставлено по крайней мере одно изeraYear(вместе сera) илиyear. Если предоставлены всеera,eraYearиyear, они должны быть согласованы.
Параметр info должен явно указывать год (как
yearилиeraиeraYear), месяц (какmonthилиmonthCode) и день. -
- Экземпляр
-
optionsНеобязательно - Объект, содержащий следующее свойство:
-
overflowНеобязательно - Строка, указывающая поведение при выходе компонента даты за пределы допустимого диапазона (при использовании объекта
info). Возможные значения:-
"constrain"(по умолчанию) - Компонент даты ограничивается допустимым диапазоном.
-
"reject" - Будет выброшено
RangeError, если компонент даты выходит за пределы допустимого диапазона.
-
-
Возвращаемое значение
Новый объект Temporal.PlainDate, представляющий дату, указанную info в указанном calendar.
Исключения
-
TypeError - Выбрасывается в одном из следующих случаев:
-
infoне является объектом или строкой. -
optionsне является объектом илиundefined. - Предоставленных свойства недостаточно для однозначного определения даты. Обычно необходимо предоставить
year(илиeraиeraYear),month(илиmonthCode) иday.
-
-
RangeError - Выбрасывается в одном из следующих случаев:
- Предоставленные свойства, определяющие один и тот же компонент, не согласованы.
- Предоставленные нечисловые свойства недействительны; например, если
monthCodeникогда не является допустимым кодом месяца в этом календаре. - Предоставленные числовые свойства выходят за пределы допустимого диапазона, и
options.overflowустановлено в"reject". - Дата не входит в представимый диапазон, который составляет ±(108 + 1) дней, или около ±273 972,6 лет от Unix epoch.
Примеры
Создание PlainDate из объекта
// Year, month, and day
const d1 = Temporal.PlainDate.from({ year: 2021, month: 7, day: 1 });
console.log(d1.toString()); // "2021-07-01"
// Year, month code, and day
const d2 = Temporal.PlainDate.from({ year: 2021, monthCode: "M07", day: 1 });
console.log(d2.toString()); // "2021-07-01"
// Year, month, day in a different calendar
const d3 = Temporal.PlainDate.from({
year: 2021,
month: 7,
day: 1,
calendar: "hebrew",
});
// Note: when you construct a date with an object, the date components
// are in *that* calendar, not the ISO calendar. However, toString() always
// outputs the date in the ISO calendar. For example, the year "2021" in
// the Hebrew calendar is actually 1740 BCE in the ISO calendar.
console.log(d3.toString()); // "-001739-03-07[u-ca=hebrew]"
// Era, eraYear, month, and day
const d4 = Temporal.PlainDate.from({
era: "meiji",
eraYear: 4,
month: 7,
day: 1,
calendar: "japanese",
});
console.log(d4.toString()); // "1871-07-01[u-ca=japanese]"
Управление поведением при выходе за пределы диапазона
По умолчанию значения вне допустимого диапазона ограничиваются допустимым диапазоном:
const d1 = Temporal.PlainDate.from({ year: 2021, month: 13, day: 1 });
console.log(d1.toString()); // "2021-12-01"
const d2 = Temporal.PlainDate.from({ year: 2021, month: 2, day: 29 });
console.log(d2.toString()); // "2021-02-28"
const d3 = Temporal.PlainDate.from("2021-02-29");
console.log(d3.toString()); // "2021-02-28"
Вы можете изменить это поведение, чтобы вместо этого генерировать ошибку:
const d3 = Temporal.PlainDate.from(
{ year: 2021, month: 13, day: 1 },
{ overflow: "reject" },
);
// RangeError: date value "month" not in 1..12: 13
Создание PlainDate из строки
const d = Temporal.PlainDate.from("2021-07-01");
console.log(d.toLocaleString("en-US", { dateStyle: "full" }));
// Thursday, July 1, 2021
// Providing a calendar
const d2 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
console.log(
d2.toLocaleString("ja-JP", { calendar: "japanese", dateStyle: "full" }),
);
// 令和3年7月1日木曜日
// Providing a time and an offset (ignored)
const d3 = Temporal.PlainDate.from("2021-07-01T00:00+08:00");
console.log(d3.toString()); // "2021-07-01"
Создание PlainDate из другого экземпляра Temporal
const dt = Temporal.PlainDateTime.from("2021-07-01T12:00");
const d = Temporal.PlainDate.from(dt);
console.log(d.toString()); // "2021-07-01"
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T00:00+08:00[Asia/Shanghai]",
);
const d2 = Temporal.PlainDate.from(zdt);
console.log(d2.toString()); // "2021-07-01"
const d3 = Temporal.PlainDate.from(d);
console.log(d3.toString()); // "2021-07-01"
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal.plaindate.from |
Совместимость с браузерами
| 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 |
См. также
© 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/PlainDate/from