Документация Day.js построена по принципу минималистичной модульной структуры, отражающей философию самой библиотеки: компактность ядра, расширяемость через плагины и предсказуемое поведение API. Основная цель документации — обеспечить быстрый доступ к функциональности без перегрузки избыточной теорией.
Вся информация организуется вокруг трёх ключевых уровней:
Такая структура обеспечивает разделение ответственности между стабильной частью библиотеки и дополнительными возможностями, подключаемыми по мере необходимости.
Ядро документации описывает основные операции с датами. В него входят функции создания, преобразования и форматирования объектов времени.
Основной способ работы с Day.js начинается с создания экземпляра:
import dayjs from 'dayjs';
const now = dayjs();
const fromString = dayjs('2026-01-01');
const fromTimestamp = dayjs(1700000000000);
Документация фиксирует несколько стандартных входных форматов:
Каждый формат описывается отдельно с акцентом на предсказуемость парсинга.
Раздел документации, посвящённый чтению данных, описывает методы получения компонентов даты:
dayjs().year();
dayjs().month();
dayjs().date();
dayjs().hour();
dayjs().minute();
dayjs().second();
Особенность структуры документации заключается в группировке методов по семантическим блокам:
Каждый метод документируется с указанием диапазона значений и особенностей нумерации (например, месяцы с нуля).
Изменение даты описывается через иммутабельную модель. Каждый вызов возвращает новый объект:
const d1 = dayjs();
const d2 = d1.add(7, 'day');
const d3 = d2.subtract(1, 'month');
Документация фиксирует важный принцип: исходный объект не изменяется. Это поведение последовательно распространяется на все методы модификации.
Группировка методов:
add — прибавление интерваловsubtract — вычитание интерваловset — установка конкретных компонентовОтдельный раздел документации посвящён преобразованию дат в строки.
dayjs().format('YYYY-MM-DD');
dayjs().format('HH:mm:ss');
dayjs().format('DD/MM/YYYY');
Структура документации по форматированию включает:
Токены описываются как отдельные элементы синтаксиса:
YYYY — полный годMM — месяц с ведущим нулёмDD — день месяцаHH — часы в 24-часовом форматеmm — минутыss — секундыДокументация разделяет локализацию на два уровня:
Подключение локали описывается отдельно:
import 'dayjs/locale/ru';
dayjs.locale('ru');
Одной из ключевых особенностей Day.js является модульность через плагины. Документация отражает это через отдельный системный раздел, где каждый плагин описывается как независимый модуль.
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
dayjs.extend(utc);
Документация фиксирует обязательный порядок:
extendКаждый плагин в документации имеет одинаковую схему:
Примеры плагинов:
Документация выделяет отдельный слой API, связанный с вычислениями.
dayjs('2026-01-01').isBefore('2027-01-01');
dayjs('2026-01-01').isAfter('2025-01-01');
dayjs('2026-01-01').isSame('2026-01-01');
Описание группируется по логическим операциям:
dayjs('2026-01-10').diff('2026-01-01', 'day');
Документация фиксирует:
Отдельный раздел документации посвящён взаимодействию с временными метками.
dayjs().valueOf();
dayjs().unix();
dayjs.unix(1700000000);
Структура описания включает:
Документация выделяет поведение при ошибочных входных данных.
dayjs('invalid').isValid();
Ключевые аспекты:
Структура документации отражает внутреннюю архитектуру расширений через единый API-подход.
Плагин описывается как функция, расширяющая прототип:
export default (option, Dayjs, dayjs) => {
// расширение функциональности
};
Каждый плагин документируется через:
Примеры структурируются по уровням сложности:
Пример цепочки:
dayjs()
.add(1, 'month')
.subtract(7, 'day')
.format('YYYY-MM-DD');
Документационная модель делает акцент на цепочечности вызовов как фундаментальном принципе API.
Внутренняя структура документации Day.js отражает архитектурное разделение самой библиотеки:
Такое разделение позволяет документации оставаться согласованной при расширении функциональности без изменения базовой структуры описания.