Intl.RelativeTimeFormat
Форматирует относительное время: «3 дня назад», «через час».
Доступно с: ES2020
Синтаксис
new Intl.RelativeTimeFormat(locales, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| locales | string | Необязательный. Язык и регион. |
| options | object | Необязательный. numeric: always или auto; style: long, short, narrow. |
Возвращаемое значение
Intl.RelativeTimeFormatОбъект с методом format(value, unit).
Примеры
Прошлое и будущее:
const rtf = new Intl.RelativeTimeFormat('en', { numeric: 'auto' });
console.log(rtf.format(-3, 'day'));
console.log(rtf.format(1, 'day'));
console.log(rtf.format(2, 'hour'));Результат:
3 days ago
tomorrow
in 2 hoursДругой язык:
const rtf = new Intl.RelativeTimeFormat('de');
console.log(rtf.format(-5, 'minute'));Результат:
vor 5 MinutenПримечания
Форматтер не вычисляет разницу сам: число и единицу (second, minute, hour, day, week, month, year) нужно посчитать заранее. Опция numeric: 'auto' даёт слова вроде yesterday вместо 1 day ago.
См. также
- Intl.DateTimeFormat — Форматирует даты и время по правилам языка.
- Date.prototype.getTime — Возвращает дату как число миллисекунд.
Вопросы и ответы по теме
В учебнике
- Форматирование: Intl — Форматирование чисел, денег, дат и окончаний слов в JavaScript с учётом языка: toLocaleString, Intl.NumberFormat, Intl.DateTimeFormat и Intl.PluralRules.