Temporal.Duration.prototype.add()
Baseline Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Метод add() экземпляров Temporal.Duration возвращает новый объект Temporal.Duration, представляющий сумму этой длительности и заданной длительности. Результат сбалансирован.
Синтаксис
add(other)
Параметры
-
other - Строка, объект или экземпляр
Temporal.Duration, представляющий длительность, которую нужно добавить к этой длительности. Она преобразуется в объектTemporal.Durationс использованием того же алгоритма, что иTemporal.Duration.from().
Возвращаемое значение
Новый объект Temporal.Duration, представляющий сумму этой длительности и other.
Исключения
-
RangeError - Выбрасывается в одном из следующих случаев:
- Либо
this, либоotherявляется календарной длительностью (она имеет ненулевыеyears,monthsилиweeks), поскольку календарные длительности неоднозначны без календаря и временной привязки. - Сумма
thisиotherпревышает максимальную или меньше минимальной представимой длительности, которая составляет ±253 секунд.
- Либо
Описание
Некалендарные длительности однозначно представляют фиксированный промежуток времени. Внутренне this и other преобразуются в наносекунды (предполагая 24-часовые дни) и складываются. Затем результат преобразуется обратно в объект Temporal.Duration, поэтому результат всегда сбалансирован или верхнетяжелый, причем самой крупной возможной единицей является days.
Если вы хотите выполнить сложение или вычитание с календарной длительностью, вы можете добавить обе длительности к начальной точке, а затем определить разницу между двумя полученными моментами времени; то есть, dur1 + dur2 эквивалентно (start + dur1 + dur2) - start.
Чтобы добавить длительность к дате или времени, вместо этого используйте метод add() объекта даты или времени.
Примеры
Использование add()
const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
const d2 = Temporal.Duration.from({ hours: -1, minutes: -20 });
const d3 = d1.add(d2);
console.log(d3.toString()); // "PT10M"
Сложение календарных длительностей
const d1 = Temporal.Duration.from({ days: 1 });
const d2 = Temporal.Duration.from({ months: 1 });
d1.add(d2); // RangeError: for calendar duration arithmetic, use date arithmetic relative to a starting point
const start = Temporal.PlainDateTime.from("2022-01-01T00:00"); // ISO 8601 calendar
const result = start.add(d1).add(d2).since(start);
console.log(result.toString()); // "P32D"
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal.duration.prototype.add |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | Bun | Deno | Node.js | |
add |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
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/Duration/add