Spec-Zone.ru › JavaScript

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.PlainDate
  • Temporal.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API