A TypeScript library for calculating the difference between two dates with localization support for multiple languages.
npm install @on_plc/timediffTimeDiff — это TypeScript-библиотека для расчета разницы между двумя датами с поддержкой локализации, правильного форматирования на нескольких языках (включая русскую и английскую локали) и поддержки ISO 8601.
Установите пакет с помощью npm:
``bash`
npm install @on_plc/timediff
`typescript`
import TimeDiff from '@on_plc/timediff';
#### Создание объекта TimeDiff
`typescript
const date1 = new Date(2023, 0, 1, 0, 0, 0); // 1 января 2023 года
const date2 = new Date(2023, 0, 2, 12, 30, 15); // 2 января 2023 года
const timeDiff = new TimeDiff(date1, date2);
`
#### Поддержка ISO 8601 и языковых настроек
Можно создать объект TimeDiff из строки ISO 8601 или указать локаль для автоматического выбора языка.
`typescript`
const isoDiff = TimeDiff.fromISO("P1DT12H30M15S");
console.log(isoDiff.humanize('ru', 'long')); // Output: "1 день, 12 часов, 30 минут, 15 секунд"
#### Форматирование разницы в человекочитаемом формате
- Полный формат (long) — с учетом множественного числа.
- Короткий формат (short) — с сокращенными единицами времени.
- ISO формат (iso) — представление в ISO 8601.
`typescript
// Английский язык, полный формат
console.log(timeDiff.humanize('en', 'long'));
// Output: "1 day, 12 hours, 30 minutes, 15 seconds"
// ISO формат
console.log(timeDiff.humanize('', 'iso'));
// Output: "P1DT12H30M15S"
`
#### Сложение и вычитание объектов TimeDiff
`typescript
const date3 = new Date(2023, 0, 3);
const diff1 = new TimeDiff(date1, date2);
const diff2 = new TimeDiff(date2, date3);
const sum = TimeDiff.add(diff1, diff2);
const difference = TimeDiff.subtract(diff1, diff2);
console.log(sum.humanize('en', 'long')); // Форматирование суммы
console.log(difference.humanize('ru', 'short')); // Форматирование разности
`
Создает объект TimeDiff, рассчитывая разницу между двумя датами.
Создает TimeDiff из строки ISO 8601.
Форматирует разницу во времени в человекочитаемый формат. Формат 'iso' возвращает строку ISO 8601.
Возвращает разницу во времени в миллисекундах.
Складывает две разницы TimeDiff и возвращает новую разницу.
Вычитает одну разницу TimeDiff из другой и возвращает результат.
Будем рады вашим предложениям и отзывам! Пожалуйста, создавайте Issues и Pull Requests, чтобы помочь улучшить этот пакет.
MIT License
``