Spec-Zone.ru › JavaScript

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" }
// ]

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

Спецификация
ECMAScript® 2027 Internationalization API Specification
# relativetimeformat-objects

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

Настольные компьютеры Мобильные устройства Сервер
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

Spec-Zone.ru

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