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.PlainDateTimeTemporal.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