JavaScript Intl.RelativeTimeFormat — «3 дні тому» без бібліотек


Intl.RelativeTimeFormat формує відносний час: «3 дні тому», «за годину», «минулого тижня».

автор: NagarD

Загальний опис

Саме заради цього роками тягнули цілі бібліотеки — а воно вбудоване й важить нуль байтів.

Знак числа задає напрямок: від'ємне — минуле («3 дні тому»), додатне — майбутнє («за 3 дні»).

Опція numeric: 'auto' вмикає найприємніше: замість «1 день тому» вона скаже «вчора», а замість «0 днів тому» — «сьогодні». Без неї фрази виходять механічними.

Саму різницю в днях чи годинах доводиться рахувати самому — метод форматує, а не обчислює.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
RelativeTimeFormat 71+ 65+ 14+ 58+ 79+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
RelativeTimeFormat 71+ yes yes 14+

Приклади

+ запропонувати свій приклад у пісочниці

«Вчора» замість «1 день тому» — і власний помічник.

const rtf = new Intl.RelativeTimeFormat('uk-UA', { numeric: 'auto' });

console.log(rtf.format(-1, 'day'));  // 'вчора' — а не «1 день тому»
console.log(rtf.format(-3, 'day'));  // '3 дні тому'
console.log(rtf.format(2, 'hour'));  // 'за 2 години'

// різницю рахуємо самі
function ago(date) {
    const seconds = (date - Date.now()) / 1000;

    if (Math.abs(seconds) < 3600) {
        return rtf.format(Math.round(seconds / 60), 'minute');
    }

    if (Math.abs(seconds) < 86400) {
        return rtf.format(Math.round(seconds / 3600), 'hour');
    }

    return rtf.format(Math.round(seconds / 86400), 'day');
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід