Вебсправочник
Справочник JavaScript

Intl.RelativeTimeFormat: подпись относительного времени

Intl.RelativeTimeFormat форматирует числовое смещение времени словами выбранного языка. Он помогает вывести подпись вроде прошедших или оставшихся дней, но сам не вычисляет разницу между датами.

Назначение

Intl.RelativeTimeFormat форматирует числовое смещение времени словами выбранного языка. Он помогает вывести подпись вроде прошедших или оставшихся дней, но сам не вычисляет разницу между датами.

Как это работает

Передайте число и единицу измерения. Отрицательное значение относится к прошлому, положительное — к будущему. Numeric:"auto" допускает специальные словесные формы, а always сохраняет числовой вариант.

Пример

const formatter = new Intl.RelativeTimeFormat("en", {numeric:"always"});
console.assert(formatter.format(-2, "day") === "2 days ago");
console.assert(formatter.format(3, "day") === "in 3 days");
const russian = new Intl.RelativeTimeFormat("ru", {numeric:"auto"});
console.log(russian.format(-1, "day"));
console.log(russian.format(1, "day"));

Что должно получиться

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

Граница применения и частая ошибка

Деление разницы временных меток на 86400000 не всегда равно разнице календарных дней в нужном часовом поясе. Выбор единицы, округление и момент обновления подписи остаются задачей приложения. Не используйте относительную подпись как единственное точное время важного события.

Самостоятельная проверка

Сравните auto и always для нуля и единицы. Выведите рядом абсолютную дату через Intl.DateTimeFormat. Объясните, когда подпись должна обновиться и как проверить её около границы суток.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.