Spec-Zone.ru › JavaScript

Intl.RelativeTimeFormat.prototype.format()

Базовая поддержка Широко доступно

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

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

Попробуйте

const rtf = new Intl.RelativeTimeFormat("en", { style: "short" });

console.log(rtf.format(3, "quarter"));
// Expected output: "in 3 qtrs."

console.log(rtf.format(-1, "day"));
// Expected output: "1 day ago"

console.log(rtf.format(10, "seconds"));
// Expected output: "in 10 sec."

Синтаксис

format(value, unit)

Параметры

value
Числовое значение для использования в интернационализированном сообщении относительного времени.
unit
Единица измерения для использования в интернационализированном сообщении относительного времени. Возможные значения: "year", "quarter", "month", "week", "day", "hour", "minute", "second". Также допустимы множественные формы.

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

Строка, представляющая данное value и unit, отформатированная в соответствии с локалью и параметрами форматирования этого объекта Intl.RelativeTimeFormat.

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

Примеры

Базовое использование format

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

// Create a relative time formatter in your locale
// with default values explicitly passed in.
const rtf = new Intl.RelativeTimeFormat("en", {
  localeMatcher: "best fit", // other values: "lookup"
  numeric: "always", // other values: "auto"
  style: "long", // other values: "short" or "narrow"
});

// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "1 day ago"

// Format relative time using positive value (1).
rtf.format(1, "day"); // "in 1 day"

Использование опции auto

Если передана опция numeric: "auto", она будет генерировать строку yesterday, today или tomorrow вместо 1 day ago, in 0 days или in 1 day. Это позволяет избежать использования числовых значений в выводе.

// Create a relative time formatter in your locale
// with numeric: "auto" option value passed in.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// Format relative time using negative value (-1).
rtf.format(-1, "day"); // "yesterday"

rtf.format(0, "day"); // "today"

// Format relative time using positive day unit (1).
rtf.format(1, "day"); // "tomorrow"

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

Спецификация
ECMAScript® 2027 Internationalization API Specification
# sec-Intl.RelativeTimeFormat.prototype.format

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

Desktop Mobile Server
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
71
79
65
58
14
71
65
50
14
10.0
71
14
1.0.0
1.8
12.0.0До версии 13.0.0 по умолчанию доступны только данные локали для en-US. Подробнее см. конструктор RelativeTimeFormat().

См. также

  • Intl.RelativeTimeFormat

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

Spec-Zone.ru

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