Day.js проектируется как минималистичная альтернатива тяжёлым библиотекам работы с датами, и именно в этой минималистичности заключается основной массив отсутствующего функционала. Архитектура ядра сознательно ограничена набором базовых операций: создание даты, форматирование, простые арифметические операции и доступ к компонентам времени. Всё, что выходит за пределы этого набора, либо исключено, либо вынесено в плагины.
Ядро Day.js представляет собой компактную обёртку над нативным
объектом Date. В нём отсутствуют сложные подсистемы,
характерные для более «тяжёлых» решений:
Такой подход исключает появление монолитного API, но одновременно убирает возможность расширенного управления временными сущностями без дополнительных модулей.
Одним из наиболее заметных ограничений является отсутствие полноценной работы с часовыми поясами в ядре. Day.js по умолчанию оперирует локальным временем среды выполнения и UTC-представлением, не предоставляя механизмов:
Функциональность временных зон реализуется исключительно через плагины, и без них библиотека остаётся «часозонно-нейтральной».
Это означает, что операции вроде «получить время в Tokyo с учётом локальных правил» невозможны без дополнительного слоя логики.
Базовый функционал не включает полноценную модель длительностей. Отсутствуют следующие возможности:
Добавление или вычитание времени реализуется через простые методы
(add, subtract), но их семантика
ограничена:
Это делает невозможными некоторые сценарии финансовых и научных расчётов без дополнительных библиотек.
Встроенный парсинг Day.js строго ограничен. В ядре отсутствует:
Парсинг строк опирается в основном на возможности
Date.parse и ограниченные внутренние алгоритмы. Это
приводит к следующим ограничениям:
Расширенные сценарии разбора реализуются через плагины вроде customParseFormat, но в базовой поставке отсутствуют.
В ядре Day.js нет поддержки альтернативных календарных систем. Недоступны:
Также отсутствует полноценная модель локализации календарных правил:
Локализация реализуется через статические наборы локалей, без динамического вычисления культурных правил.
Манипуляции датами в Day.js намеренно упрощены. Отсутствуют:
Каждая операция возвращает новый объект, но система не отслеживает происхождение изменений. Это делает невозможным анализ «путей трансформации» даты.
Также отсутствуют:
Day.js не включает функциональность, характерную для систем планирования и временной аналитики:
Любые подобные сценарии требуют внешней реализации или интеграции сторонних библиотек.
Ядро не предоставляет:
Все эти области полностью вынесены за пределы ответственности библиотеки.
Архитектурная стратегия Day.js заключается в том, что отсутствующий функционал не реализуется внутри ядра, а подключается точечно через плагины. Это формирует модульную модель расширения:
Однако даже при использовании плагинов сохраняется принцип: ядро не становится полнофункциональной временной платформой, а остаётся минималистичным базисом.
Такой подход приводит к предсказуемому поведению, но одновременно оставляет значительный объём функциональности вне стандартного API, требуя явной сборки возможностей под конкретный сценарий использования.