Библиотека timeago.js предназначена для преобразования
абсолютной даты и времени в человекочитаемый относительный формат:
5 секунд назад3 минуты назад2 часа назадвчерамесяц назадПодобное отображение активно используется в:
Главное преимущество библиотеки заключается в том, что она автоматически обновляет текст времени без необходимости ручной логики.
Одной из ключевых причин популярности timeago.js
является крайне небольшой размер библиотеки.
В крупных frontend-проектах каждые дополнительные килобайты имеют значение, особенно при использовании:
timeago.js решает задачу форматирования времени без
тяжёлых зависимостей.
Для начала работы требуется минимальное количество кода.
npm install timeago.js
import { format } from 'timeago.js';
const result = format('2026-05-20 10:00:00');
console.log(result);
Результат:
6 дней назад
<script src="https://unpkg.com/timeago.js"></script>
После подключения библиотека сразу доступна в браузере.
Одной из самых полезных возможностей является автоматическое обновление текста времени на странице.
Например:
1 минуту назад2 минуты назадБез ручного обновления интерфейса.
<span class="timeago" datetime="2026-05-26T10:00:00"></span>
timeago.render(document.querySelectorAll('.timeago'));
Библиотека самостоятельно:
Без timeago.js приходится самостоятельно
реализовывать:
const diff = Date.now() - createdAt;
const minutes = Math.floor(diff / 60000);
if (minutes < 1) {
return 'только что';
}
if (minutes < 60) {
return `${minutes} минут назад`;
}
С ростом проекта подобный код быстро становится:
timeago.js устраняет необходимость писать подобную
логику вручную.
Библиотека поддерживает множество языков.
import { register, format } from 'timeago.js';
import ru from 'timeago.js/lib/lang/ru';
register('ru', ru);
console.log(format(Date.now() - 10000, 'ru'));
Результат:
10 секунд назад
При необходимости можно определить собственную систему отображения времени.
import { register } from 'timeago.js';
register('custom', (number, index) => {
return [
['только что', 'прямо сейчас'],
['%s секунда', '%s секунд'],
['1 минута', '%s минут'],
['1 час', '%s часов']
][index];
});
Это особенно полезно в:
Библиотека умеет напрямую взаимодействовать с элементами страницы.
const nodes = document.querySelectorAll('.time');
timeago.render(nodes);
timeago.cancel();
timeago.cancel(node);
Подобный механизм помогает:
timeago.js особенно эффективна в интерфейсах с
постоянным обновлением данных.
сообщение отправлено 5 секунд назад
пост опубликован 2 минуты назад
обновление произошло час назад
сервер был перезапущен 30 секунд назад
В подобных системах относительное время воспринимается значительно удобнее абсолютных дат.
Человек воспринимает относительное время быстрее, чем точные даты.
Абсолютная дата:
26.05.2026 14:31:52
Относительное время:
3 минуты назад
Второй вариант:
Библиотека поддерживает разные типы дат.
format('2026-05-26');
format(1748250000000);
format(new Date());
Это упрощает интеграцию с:
timeago.js легко интегрируется практически с любыми
frontend-решениями.
import { format } from 'timeago.js';
function Post({ createdAt }) {
return <span>{format(createdAt)}</span>;
}
import { format } from 'timeago.js';
export default {
methods: {
time(value) {
return format(value);
}
}
}
import { format } from 'timeago.js';
format(date);
import { format } from 'timeago.js';
Библиотека не привязана к конкретной архитектуре приложения.
Многие решения для работы со временем обладают большим размером:
Хотя эти библиотеки решают множество задач, для простого отображения:
5 минут назад
их использование может быть избыточным.
timeago.js концентрируется только на одной задаче и
делает это максимально эффективно.
API библиотеки состоит из небольшого количества функций.
format(date);
Преобразование даты в строку.
render(nodes);
Автоматическое обновление DOM-элементов.
cancel();
Остановка обновлений.
register('ru', locale);
Регистрация локализации.
Небольшой API:
Интерфейсы с относительным временем выглядят современнее и понятнее.
2026-05-26 12:45:33
15 минут назад
Особенно это важно в:
Библиотека может использоваться:
const { format } = require('timeago.js');
console.log(format(Date.now() - 60000));
Это делает библиотеку удобной для:
Работа со временем традиционно считается одной из самых сложных областей программирования.
Типичные ошибки:
Использование готовой библиотеки уменьшает количество подобных проблем.
Возможно обновление:
const node = document.querySelector('.post-time');
timeago.render(node);
Это удобно для:
Библиотека корректно работает с ISO-датами.
format('2026-05-26T15:20:00Z');
ISO-формат является стандартом для:
Даже при большом количестве элементов библиотека остаётся эффективной.
const items = document.querySelectorAll('[data-time]');
timeago.render(items);
Подходит для:
Использование специализированной библиотеки улучшает архитектуру проекта.
timeago.js использует понятные правила преобразования
времени.
Например:
Это обеспечивает единообразие отображения времени во всём приложении.
Подключение библиотеки обычно занимает несколько минут:
format;Минимальный порог входа делает библиотеку особенно популярной в frontend-разработке.
В архитектуре микрофронтендов важны:
timeago.js хорошо соответствует этим требованиям
благодаря: