Spec-Zone.ru › JavaScript

Intl.DurationFormat.prototype.format()

Базовый уровень Недавно доступно

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

Метод format() экземпляров Intl.DurationFormat форматирует продолжительность в соответствии с локалью и параметрами форматирования этого объекта Intl.DurationFormat.

Синтаксис

format(duration)

Параметры

duration
Объект продолжительности для форматирования. Он должен включать некоторые или все из следующих свойств: years, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds. Значение каждого свойства должно быть целым числом, а их знаки должны быть согласованы. Это может быть объект Temporal.Duration; см. документацию Temporal.Duration для получения дополнительной информации об этих свойствах.

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

Строка, представляющая заданную duration, отформатированную в соответствии с локалью и параметрами форматирования этого объекта Intl.DurationFormat.

Примечание: В большинстве случаев форматирование, возвращаемое format(), является согласованным. Однако вывод может различаться между реализациями, даже в пределах одной и той же локали — вариации вывода являются преднамеренными и разрешены спецификацией. Он также может отличаться от того, что вы ожидаете. Например, строка может использовать неразрывные пробелы или быть окружена двунаправленными управляющими символами. Вам не следует сравнивать результаты format() с жестко заданными константами.

Примеры

Использование format()

Следующий пример показывает, как создать форматтер продолжительности, используя английский язык.

const duration = {
  years: 1,
  months: 2,
  weeks: 3,
  days: 3,
  hours: 4,
  minutes: 5,
  seconds: 6,
  milliseconds: 7,
  microseconds: 8,
  nanoseconds: 9,
};

// Without options, style defaults to "short"
new Intl.DurationFormat("en").format(duration);
// "1 yr, 2 mths, 3 wks, 3 days, 4 hr, 5 min, 6 sec, 7 ms, 8 μs, 9 ns"

// With style set to "long"
new Intl.DurationFormat("en", { style: "long" }).format(duration);
// "1 year, 2 months, 3 weeks, 3 days, 4 hours, 5 minutes, 6 seconds, 7 milliseconds, 8 microseconds, 9 nanoseconds"

// With style set to "narrow"
new Intl.DurationFormat("en", { style: "narrow" }).format(duration);
// "1y 2mo 3w 3d 4h 5m 6s 7ms 8μs 9ns"

Использование format() с разными локалями и стилями

const duration = {
  hours: 1,
  minutes: 46,
  seconds: 40,
};

// With style set to "long" and locale "fr-FR"
new Intl.DurationFormat("fr-FR", { style: "long" }).format(duration);
// "1 heure, 46 minutes et 40 secondes"

// With style set to "short" and locale set to "en"
new Intl.DurationFormat("en", { style: "short" }).format(duration);
// "1 hr, 46 min and 40 sec"

// With style set to "short" and locale set to "pt"
new Intl.DurationFormat("pt", { style: "narrow" }).format(duration);
// "1 h 46 min 40 s"

// With style set to "digital" and locale set to "en"
new Intl.DurationFormat("en", { style: "digital" }).format(duration);
// "1:46:40"

// With style set to "digital", locale set to "en", and hours set to "long"
new Intl.DurationFormat("en", { style: "digital", hours: "long" }).format(
  duration,
);
// "1 hour, 46:40"

Использование format() с опцией fractionalDigits

const duration = {
  hours: 11,
  minutes: 30,
  seconds: 12,
  milliseconds: 345,
  microseconds: 600,
};

new Intl.DurationFormat("en", { style: "digital" }).format(duration);
// "11:30:12.3456"

new Intl.DurationFormat("en", { style: "digital", fractionalDigits: 5 }).format(
  duration,
);
// "11:30:12.34560"

new Intl.DurationFormat("en", { style: "digital", fractionalDigits: 3 }).format(
  duration,
);
// "11:30:12.346"

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

Спецификация
Intl.DurationFormat
# sec-Intl.DurationFormat.prototype.format

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

Десктопные Мобильные Серверные
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
format
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
  • Temporal.Duration

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

Spec-Zone.ru

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