Spec-Zone.ru › JavaScript

Temporal.PlainDateTime.prototype.with()

Baseline Ограниченная доступность

Эта функция не является Baseline, так как она не работает в некоторых наиболее широко используемых браузерах.

Метод with() экземпляров Temporal.PlainDateTime возвращает новый объект Temporal.PlainDateTime, представляющий эту дату и время с некоторыми полями, замененными новыми значениями. Поскольку все объекты Temporal разработаны как неизменяемые, этот метод по сути функционирует как сеттер для полей даты и времени.

Чтобы заменить свойство calendarId, вместо этого используйте метод withCalendar().

Синтаксис

with(info)
with(info, options)

Параметры

info
Объект, содержащий как минимум одно из свойств, распознаваемых Temporal.PlainDateTime.from() (кроме calendar): day, era и eraYear, hour, microsecond, millisecond, minute, month, monthCode, nanosecond, second, year. Неуказанные свойства используют значения из исходной даты и времени. Вам нужно предоставить только одно из month или monthCode, и одно из era и eraYear или year, а другие будут обновлены соответственно.
options Необязательно
Объект, содержащий следующее свойство:
overflow Необязательно
Строка, определяющая поведение, когда компонент даты выходит за допустимые пределы. Возможные значения:
"constrain" (по умолчанию)
Компонент даты ограничивается допустимым диапазоном.
"reject"
Будет выброшен RangeError, если компонент даты выходит за допустимые пределы.

Возвращаемое значение

Новый объект Temporal.PlainDateTime, в котором поля, указанные в info, которые не являются undefined, заменены соответствующими значениями, а остальные поля скопированы из исходной даты и времени.

Исключения

TypeError
Выбрасывается в одном из следующих случаев:
  • info не является объектом.
  • options не является объектом или undefined.
RangeError
Выбрасывается в одном из следующих случаев:
  • Предоставленные свойства, определяющие один и тот же компонент, противоречивы.
  • Предоставленные нечисловые свойства недействительны; например, если monthCode никогда не является допустимым кодом месяца в этом календаре.
  • Предоставленные числовые свойства находятся вне допустимого диапазона, и options.overflow установлен в "reject".
  • Результат находится вне представимого диапазона, который составляет ±(108 + 1) дней, или примерно ±273 972,6 года, от эпохи Unix.

Примеры

Использование with()

const dt = Temporal.PlainDateTime.from("2021-07-01T12:34:56");
const newDT = dt.with({ hour: 13 });
console.log(newDT.toString()); // "2021-07-01T13:34:56"
const newDT2 = dt.with({ month: 2, day: 22, millisecond: 222 });
console.log(newDT2.toString()); // "2021-02-22T13:34:56.222"
const nextDecade = dt.with({ year: dt.year + 10 });
console.log(nextDecade.toString()); // "2031-07-01T13:34:56"

Дополнительные примеры см. в документации по отдельным свойствам, которые можно установить с помощью with().

Спецификации

Спецификация
Temporal
# sec-temporal.plaindatetime.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.PlainDateTime
  • Temporal.PlainDateTime.prototype.withCalendar()
  • Temporal.PlainDateTime.prototype.withPlainTime()
  • Temporal.PlainDateTime.from()
  • Temporal.PlainDateTime.prototype.add()
  • Temporal.PlainDateTime.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/PlainDateTime/with

Spec-Zone.ru

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