Spec-Zone.ru › JavaScript

Конструктор Intl.DurationFormat()

Базовая поддержка Новая функция

Эта функция работает на новейших устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или версиях браузеров. Она доступна во всех браузерах с марта 2025 года.

Конструктор Intl.DurationFormat() создает объекты Intl.DurationFormat.

Синтаксис

new Intl.DurationFormat()
new Intl.DurationFormat(locales)
new Intl.DurationFormat(locales, options)

Примечание: Intl.DurationFormat() может быть сконструирован только с использованием new. Попытка вызвать его без new вызовет ошибку TypeError.

Параметры

locales Необязательный

Строка с тег языка BCP 47 или экземпляр Intl.Locale, или массив таких идентификаторов локали. При использовании undefined или когда ни один из указанных идентификаторов локали не поддерживается, используется локаль по умолчанию среды выполнения. Общая форма и интерпретация аргумента locales см. в описании параметра на основной странице Intl.

Разрешен следующий ключ расширения Unicode:

nu
См. numberingSystem.

Этот ключ также может быть установлен с помощью options (как указано ниже). Когда оба установлены, свойство options имеет приоритет.

options Необязательный
Объект, содержащий следующие свойства, в порядке их получения (все они необязательны):
localeMatcher
Алгоритм сопоставления локали для использования. Возможные значения: "lookup" и "best fit"; по умолчанию "best fit". Для получения информации об этой опции см. Идентификация и согласование локали.
numberingSystem
Система нумерации для форматирования чисел, такая как "arab", "hans", "mathsans" и т. д. Список поддерживаемых типов систем нумерации см. в Intl.supportedValuesOf(); по умолчанию зависит от локали. Эта опция также может быть установлена через ключ расширения Unicode nu; если указаны оба, это свойство options имеет приоритет.
style
Стиль форматирования продолжительности. Это значение используется по умолчанию для всех других опций единиц измерения, а также соответствует опции style Intl.ListFormat() при объединении списка единиц продолжительности. Возможные значения:
"long"
Например, 1 час и 50 минут
"short" (по умолчанию)
Например, 1 ч, 50 мин
"narrow"
Например, 1ч 50м
"digital"
Например, 1:50:00
years
Стиль форматирования лет. Возможные значения: "long", "short" и "narrow"; по умолчанию options.style, если "digital" не указано, и "short" в противном случае.
yearsDisplay
Всегда отображать годы или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если years не указано, и "always" в противном случае.
months
Стиль форматирования месяцев. Возможные значения: "long", "short" и "narrow"; по умолчанию options.style, если "digital" не указано, и "short" в противном случае.
monthsDisplay
Всегда отображать месяцы или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если months не указано, и "always" в противном случае.
weeks
Стиль форматирования недель. Возможные значения: "long", "short" и "narrow"; по умолчанию options.style, если "digital" не указано, и "short" в противном случае.
weeksDisplay
Всегда отображать недели или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если weeks не указано, и "always" в противном случае.
days
Стиль форматирования дней. Возможные значения: "long", "short" и "narrow"; по умолчанию options.style, если "digital" не указано, и "short" в противном случае.
daysDisplay
Всегда отображать дни или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если days не указано, и "always" в противном случае.
hours
Стиль форматирования часов. Возможные значения: "long", "short", "narrow", "numeric" и "2-digit"; по умолчанию options.style, если "digital" не указано, и "numeric" в противном случае.
hoursDisplay
Всегда отображать часы или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если hours не указано и options.style не является "digital", и "always" в противном случае.
minutes
Стиль форматирования минут.
  • Если hours является "numeric" или "2-digit", возможные значения: "numeric" и "2-digit", а "numeric" нормализуется до "2-digit"; по умолчанию "numeric".
  • В противном случае возможные значения: "long", "short", "narrow", "numeric" и "2-digit"; по умолчанию options.style, если "digital" не указано, и "numeric" в противном случае.
minutesDisplay
Всегда отображать минуты или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если minutes не указано и options.style не является "digital", и "always" в противном случае.
seconds
Стиль форматирования секунд.
  • Если minutes является "numeric" или "2-digit", возможные значения: "numeric" и "2-digit", а "numeric" нормализуется до "2-digit"; по умолчанию "numeric".
  • В противном случае возможные значения: "long", "short", "narrow", "numeric" и "2-digit"; по умолчанию options.style, если "digital" не указано, и "numeric" в противном случае.
secondsDisplay
Всегда отображать секунды или только если они ненулевые. Возможные значения: "always" и "auto"; по умолчанию "auto", если seconds не указано и options.style не является "digital", и "always" в противном случае.
milliseconds
Стиль форматирования миллисекунд.
  • Если seconds является "numeric" или "2-digit", единственное возможное значение: "numeric"; по умолчанию "numeric".
  • В противном случае возможные значения: "long", "short", "narrow" и "numeric"; по умолчанию options.style, если "digital" не указано, и "numeric" в противном случае.
millisecondsDisplay
Всегда отображать миллисекунды или только если они ненулевые.
  • Если seconds является "numeric" или "2-digit", единственное возможное значение: "auto"; по умолчанию только "auto", когда milliseconds не указано.
  • В противном случае возможные значения: "always" и "auto"; по умолчанию "auto", если milliseconds не указано, и "always" в противном случае.
microseconds
Стиль форматирования микросекунд.
  • Если milliseconds является "numeric", единственное возможное значение: "numeric"; по умолчанию "numeric".
  • В противном случае возможные значения: "long", "short", "narrow" и "numeric"; по умолчанию options.style, если "digital" не указано, и "numeric" в противном случае.
microsecondsDisplay
Всегда отображать микросекунды или только если они ненулевые.
  • Если milliseconds является "numeric", единственное возможное значение: "auto"; по умолчанию только "auto", когда microseconds не указано.
  • В противном случае возможные значения: "always" и "auto"; по умолчанию "auto", если microseconds не указано, и "always" в противном случае.
nanoseconds
Стиль форматирования наносекунд.
  • Если microseconds является "numeric", единственное возможное значение: "numeric"; по умолчанию "numeric".
  • В противном случае возможные значения: "long", "short", "narrow" и "numeric"; по умолчанию options.style, если "digital" не указано, и "numeric" в противном случае.
nanosecondsDisplay
Всегда отображать наносекунды или только если они ненулевые.
  • Если microseconds является "numeric", единственное возможное значение: "auto"; по умолчанию только "auto", когда nanoseconds не указано.
  • В противном случае возможные значения: "always" и "auto"; по умолчанию "auto", если nanoseconds не указано, и "always" в противном случае.
fractionalDigits
Количество десятичных цифр после запятой для отображения в результате. Возможные значения от 0 до 9; по умолчанию undefined (включать столько десятичных цифр, сколько необходимо).

Исключения

RangeError
Выбрасывается, если locales или options содержат недопустимые значения.

Описание

Для каждого сегмента времени под капотом создается объект Intl.NumberFormat. Он использует следующие опции (см. Intl.NumberFormat() для получения подробной информации):

  • numberingSystem: значение options.numberingSystem

Когда milliseconds, microseconds или nanoseconds используют стиль "numeric", также используются следующие опции:

  • minimumFractionDigits: 0, когда options.fractionalDigits равен undefined, в противном случае options.fractionalDigits
  • maximumFractionDigits: 9, когда options.fractionalDigits равен undefined, в противном случае options.fractionalDigits
  • roundingMode: "trunc"

Когда сегмент времени использует стиль "2-digit", также используются следующие опции:

  • minimumIntegerDigits: 2

Когда сегмент времени использует стиль "long", "short" или "narrow", также используются следующие опции:

  • style: "unit", когда "long", "short" или "narrow" указаны, в противном случае undefined
  • unit: текущая форматируемая единица ("years", "days", "nanoseconds" и т. д.)
  • unitDisplay: значение стиля временного сегмента ("long", "short" или "narrow")

Примеры

Использование конструктора Intl.DurationFormat()

const duration = {
  hours: 2,
  minutes: 20,
  seconds: 35,
};

console.log(new Intl.DurationFormat("pt", { style: "long" }).format(duration));
// "2 horas, 20 minutos e 35 segundos"

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

Спецификация
Intl.DurationFormat
# sec-intl-durationformat-constructor

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

Настольные ПК Мобильные Сервер
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
DurationFormat
129
129
136
115
16.4
129
136
86
16.4
28.0
129
16.4
1.0.3
1.46
23.0.0

См. также

  • Intl.DurationFormat
  • Intl.supportedValuesOf()
  • Intl

© 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/Intl/DurationFormat/DurationFormat

Spec-Zone.ru

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