Intl.RelativeTimeFormat
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2020 года.
Объект Intl.RelativeTimeFormat обеспечивает форматирование относительного времени с учетом языка.
Попробовать
const rtf1 = new Intl.RelativeTimeFormat("en", { style: "short" });
console.log(rtf1.format(3, "quarter"));
// Expected output: "in 3 qtrs."
console.log(rtf1.format(-1, "day"));
// Expected output: "1 day ago"
const rtf2 = new Intl.RelativeTimeFormat("es", { numeric: "auto" });
console.log(rtf2.format(2, "day"));
// Expected output: "pasado mañana"
Конструктор
-
Intl.RelativeTimeFormat() - Создает новый объект
Intl.RelativeTimeFormat.
Статические методы
-
Intl.RelativeTimeFormat.supportedLocalesOf() - Возвращает массив, содержащий указанные локали, которые поддерживаются без необходимости использования резервной локали среды выполнения по умолчанию.
Свойства экземпляра
Эти свойства определены для Intl.RelativeTimeFormat.prototype и используются всеми экземплярами Intl.RelativeTimeFormat.
-
Intl.RelativeTimeFormat.prototype.constructor - Функция-конструктор, создавшая объект экземпляра. Для экземпляров
Intl.RelativeTimeFormatначальным значением является конструкторIntl.RelativeTimeFormat. -
Intl.RelativeTimeFormat.prototype[Symbol.toStringTag] - Начальным значением свойства
[Symbol.toStringTag]является строка"Intl.RelativeTimeFormat". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Intl.RelativeTimeFormat.prototype.format() - Форматирует
valueиunitв соответствии с локалью и параметрами форматирования данного объектаIntl.RelativeTimeFormat. -
Intl.RelativeTimeFormat.prototype.formatToParts() - Возвращает
Arrayобъектов, представляющих части форматирования относительного времени, которые можно использовать для пользовательского форматирования с учетом локали. -
Intl.RelativeTimeFormat.prototype.resolvedOptions() - Возвращает новый объект со свойствами, отражающими локаль и параметры форматирования, вычисленные при инициализации объекта.
Примеры
Основное использование 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"
Использование formatToParts
Следующий пример показывает, как создать форматировщик относительного времени, возвращающий отформатированные части.
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// Format relative time using the day unit.
rtf.formatToParts(-1, "day");
// [{ type: "literal", value: "yesterday"}]
rtf.formatToParts(100, "day");
// [
// { type: "literal", value: "in " },
// { type: "integer", value: "100", unit: "day" },
// { type: "literal", value: " days" }
// ]
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
RelativeTimeFormat |
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() для получения дополнительных сведений. |
RelativeTimeFormat |
71 |
79 |
65 |
58 |
14 |
71 |
65 |
50 |
14 |
10.0 |
71 |
14 |
1.0.0 |
1.8 |
12.0.0 |
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() для получения дополнительных сведений. |
formatToParts |
71 |
79 |
70 |
58 |
14 |
71 |
79 |
50 |
14 |
10.0 |
71 |
14 |
1.0.0 |
1.8 |
12.0.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. См. конструктор RelativeTimeFormat() для получения дополнительных сведений. |
resolvedOptions |
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() для получения дополнительных сведений. |
supportedLocalesOf |
71 |
79 |
65 |
58 |
14 |
71 |
65 |
50 |
14 |
10.0 |
71 |
14 |
1.0.0 |
1.8 |
13.0.0
12.0.0–13.0.0До версии 13.0.0 по умолчанию доступны только данные локали дляen-US. См. документацию Node.js по параметру --with-intl и о том, как предоставить данные. |
См. также
- Polyfill для
Intl.RelativeTimeFormatв FormatJS Intl-
Intl.RelativeTimeFormatна v8.dev (2018)
© 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