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(). |
См. также
© 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