Библиотека timeago.js предназначена для преобразования даты и времени в человекочитаемый относительный формат:
just now1 minute ago3 hours ago2 days agoБиблиотека работает в браузере и в среде Node.js, практически не имеет внешних зависимостей и подходит для:
Перед использованием необходимо подготовить окружение и убедиться в наличии базовых компонентов экосистемы JavaScript.
Библиотека поддерживает современные браузеры:
Для работы необходима поддержка:
Date;В большинстве современных проектов дополнительная полификация не требуется.
Для серверной разработки библиотека может использоваться в среде Node.js.
Минимально рекомендуется:
Проверка версии:
node -v
npm -v
Пример результата:
v20.11.0
10.2.4
Наиболее распространённый вариант:
npm install timeago.js
После установки пакет попадает в директорию:
node_modules/timeago.js
yarn add timeago.js
pnpm add timeago.js
Для старых проектов Node.js используется CommonJS:
const timeago = require('timeago.js');
Такой формат характерен для:
Современный формат импорта:
import * as timeago from 'timeago.js';
или:
import { format } from 'timeago.js';
Поддержка ES Modules требуется в:
Библиотека может использоваться напрямую через CDN.
Пример:
<script src="https://unpkg.com/timeago.js/dist/timeago.min.js"></script>
После подключения становится доступен глобальный объект:
timeago
Пример использования:
const result = timeago.format('2025-01-10');
console.log(result);
Такой подход подходит для:
Библиотека содержит встроенные TypeScript-типизации.
Дополнительные пакеты устанавливать не требуется:
npm install timeago.js
TypeScript автоматически определяет типы.
Рекомендуется:
moduleResolution: nodeПример конфигурации tsconfig.json:
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "node",
"strict": true
}
}
Для React-проектов достаточно:
Установка:
npm install react react-dom timeago.js
Пример:
import { format } from 'timeago.js';
function PostDate() {
return (
<span>
{format('2025-05-01')}
</span>
);
}
Библиотека полностью совместима с Vue 3.
Пример:
import { format } from 'timeago.js';
export default {
setup() {
const value = format(Date.now() - 1000 * 60);
return {
value
};
}
};
В Next.js библиотека может использоваться:
Установка:
npm install timeago.js
Пример:
import { format } from 'timeago.js';
export default function Page() {
return (
<div>
{format(new Date())}
</div>
);
}
Vite полностью поддерживает библиотеку без дополнительной настройки.
Создание проекта:
npm create vite@latest
Установка библиотеки:
npm install timeago.js
Пример:
import { format } from 'timeago.js';
console.log(format(Date.now() - 60000));
Библиотека корректно работает с:
Современные сборщики умеют удалять неиспользуемый код.
Пример импорта:
import { format } from 'timeago.js';
Такой подход уменьшает итоговый размер bundle.
Библиотека принимает:
Date.format('2025-05-20 10:00:00');
format(1716200000000);
format(new Date());
Некорректные значения приводят к ошибкам форматирования.
Допустимые варианты:
format('2025-05-10');
format('2025-05-10T10:30:00');
format(new Date());
Нежелательные варианты:
format('abc');
format(undefined);
format(null);
Библиотека поддерживает большое количество локалей:
Пример русского языка:
import { format, register } from 'timeago.js';
import ru from 'timeago.js/lib/lang/ru';
register('ru', ru);
console.log(format(Date.now() - 1000, 'ru'));
Библиотека вычисляет разницу между:
Некорректное системное время приводит к неправильным результатам:
5 minutes ago
2 years ago
just now
При серверном рендеринге особенно важно:
Сама библиотека не занимается сложной обработкой timezone.
Она использует:
new Date()
Поэтому рекомендуется:
2025-05-26T12:00:00Z
Такой формат:
timeago.js относится к лёгким библиотекам.
Преимущества:
Это особенно важно для:
Если интерфейс должен обновлять подписи автоматически:
1 minute ago → 2 minutes ago
необходимо:
setInterval;Пример:
import { render } from 'timeago.js';
render(document.querySelectorAll('.time'));
На сервере библиотека работает без DOM.
Поддерживаются:
Пример:
import { format } from 'timeago.js';
const value = format(Date.now() - 1000 * 60);
console.log(value);
Библиотека не выполняет:
Поэтому она считается безопасной для:
После установки рекомендуется выполнить проверку:
import { format } from 'timeago.js';
console.log(
format(Date.now() - 1000 * 60 * 5)
);
Ожидаемый результат:
5 minutes ago
Ошибка:
Cannot find module 'timeago.js'
Причины:
node_modules;Решение:
npm install timeago.js
Ошибка:
SyntaxError: Cannot use import statement outside a module
Причина:
Решения:
const timeago = require('timeago.js');
или настройка:
{
"type": "module"
}
Ошибка:
Cannot find module 'timeago.js/lib/lang/ru'
Причины:
Следует проверить:
npm update
Минимальный рекомендуемый стек:
| Компонент | Рекомендуемая версия |
|---|---|
| Node.js | 14+ |
| npm | 6+ |
| TypeScript | 4+ |
| React | 17+ |
| Vue | 3+ |
| Next.js | 13+ |
| Vite | 4+ |
Рекомендуется:
Важно:
Следует учитывать:
Рекомендуемый подход:
2025-05-26T12:00:00Z
Полностью подготовленное окружение должно обеспечивать:
timeago.js;Date;