Spec-Zone.ru › JavaScript

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

См. также

  • Temporal.Duration
  • Temporal.Duration.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/Duration/add

Spec-Zone.ru

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