Spec-Zone.ru › JavaScript

Temporal.Duration.from()

Базовый уровень Ограниченная доступность

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

Статический метод Temporal.Duration.from() создает новый объект Temporal.Duration из другого объекта Temporal.Duration, объекта со свойствами длительности или строки ISO 8601.

Синтаксис

Temporal.Duration.from(info)

Параметры

info
Одно из следующих значений:
  • Экземпляр Temporal.Duration, который создает копию этого экземпляра.
  • Строка ISO 8601, представляющая длительность.
  • Объект, содержащий как минимум одно из следующих свойств (в порядке, в котором они извлекаются и проверяются):
    • days
    • hours
    • microseconds
    • milliseconds
    • minutes
    • months
    • nanoseconds
    • seconds
    • weeks
    • years

    Каждое свойство должно содержать целочисленное значение. Результирующая длительность не должна иметь смешанные знаки, поэтому все эти свойства должны иметь одинаковый знак (или ноль). Отсутствующие свойства трактуются как ноль.

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

Новый объект Temporal.Duration, возможно несбалансированный, с указанными компонентами.

Исключения

RangeError
Выбрасывается в одном из следующих случаев:
  • Любое из распознанных свойств в объекте info не является целым числом (включая не конечные значения).
  • Календарная единица (годы, месяцы, недели) имеет абсолютное значение ≥ 232.
  • Некалендарная часть длительности (дни и ниже), выраженная в секундах, имеет абсолютное значение ≥ 253.
TypeError
Выбрасывается в одном из следующих случаев:
  • info не является объектом или строкой.
  • Все распознанные свойства в объекте info являются undefined.

Примеры

Создание длительности из объекта

const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
console.log(d1.toString()); // "PT1H30M"

const d2 = Temporal.Duration.from({ months: 1, days: 2 });
console.log(d2.toString()); // "P1M2D"

// Uncommon because unbalanced, but valid
const unbalanced = Temporal.Duration.from({
  hours: 100,
  minutes: 100,
  seconds: 100,
});
console.log(unbalanced.toString()); // "PT100H100M100S"

const neg = Temporal.Duration.from({ hours: -1, minutes: -30 });
console.log(neg.toString()); // "-PT1H30M"

Создание длительности из строки

const d = Temporal.Duration.from("P1Y2M3W4DT5H6M7.00800901S");
console.log(d.hours); // 5

Создание длительности из другой длительности

const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
const d2 = Temporal.Duration.from(d1);
console.log(d2.toString()); // "PT1H30M"

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

Спецификация
Temporal
# sec-temporal.duration.from

Совместимость с браузерами

Настольные Мобильные Серверные
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
from
144
144
139
128
preview
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

См. также

  • Temporal.Duration
  • Temporal.Duration()
  • Temporal.Duration.prototype.with()

© 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/from

Spec-Zone.ru

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