Temporal.PlainDate.prototype.with()
Базовый Ограниченная доступность
Эта функция не является Базовой, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Метод with() экземпляров Temporal.PlainDate возвращает новый объект Temporal.PlainDate, представляющий эту дату с некоторыми полями, замененными новыми значениями. Поскольку все объекты Temporal разработаны как неизменяемые (immutable), этот метод по существу функционирует как сеттер для полей даты.
Чтобы заменить свойство calendarId, используйте вместо него метод withCalendar().
Синтаксис
with(info) with(info, options)
Параметры
-
info - Объект, содержащий по крайней мере одно из свойств, распознаваемых
Temporal.PlainDate.from()(кромеcalendar):day,eraиeraYear,month,monthCode,year. Для неуказанных свойств используются значения из исходной даты. Вам нужно предоставить только одно изmonthилиmonthCode, и одно изeraиeraYearилиyear, а другое будет обновлено соответствующим образом. -
optionsНеобязательно - Объект, содержащий следующее свойство:
-
overflowНеобязательно - Строка, указывающая поведение, когда компонент даты выходит за пределы допустимого диапазона. Возможные значения:
-
"constrain"(по умолчанию) - Компонент даты ограничивается допустимым диапазоном.
-
"reject" - Генерируется
RangeError, если компонент даты выходит за пределы диапазона.
-
-
Возвращаемое значение
Новый объект Temporal.PlainDate, в котором поля, указанные в info и не являющиеся undefined, заменяются соответствующими значениями, а остальные поля копируются из исходной даты.
Исключения
-
TypeError - Генерируется в одном из следующих случаев:
-
infoне является объектом. -
optionsне является объектом илиundefined.
-
-
RangeError - Генерируется в одном из следующих случаев:
- Предоставленные свойства, которые указывают на один и тот же компонент, являются непоследовательными (противоречивыми).
- Предоставленные нечисловые свойства недействительны; например, если
monthCodeникогда не является допустимым кодом месяца в этом календаре. - Предоставленные числовые свойства выходят за пределы диапазона, а
options.overflowустановлено в"reject". - Результат не находится в представимом диапазоне, который составляет ±(108 + 1) дней, или около ±273 972,6 лет, от эпохи Unix.
Примеры
Использование with()
const date = Temporal.PlainDate.from("2021-07-06");
const newDate = date.with({ day: date.daysInMonth });
console.log(newDate.toString()); // 2021-07-31
const nextDecade = date.with({ year: date.year + 10 });
console.log(nextDecade.toString()); // 2031-07-06
Дополнительные примеры смотрите в документации по отдельным свойствам, которые можно установить с помощью with().
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal.plaindate.prototype.with |
Совместимость с браузерами
| 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 | |
with |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
Смотрите также
Temporal.PlainDateTemporal.PlainDate.prototype.withCalendar()Temporal.PlainDate.from()Temporal.PlainDate.prototype.add()Temporal.PlainDate.prototype.subtract()
© 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/with