javascript42
Главная
Все учебники
Блог
Учебник Day.js
Введение
Что такое Day.js
История создания и философия библиотеки
Сравнение с Moment.js и нативным Date
Когда использовать Day.js
Структура документации
Установка и настройка
Установка через npm и yarn
Подключение через CDN
Импорт в различных окружениях
Настройка TypeScript
Первая программа с Day.js
Основы работы с датами
Создание объектов даты
Парсинг строк и форматов
Работа с Unix timestamp
Клонирование объектов даты
Валидация дат
Получение текущей даты и времени
Форматирование дат
Базовые токены форматирования
Форматирование года, месяца и дня
Форматирование времени
Форматирование дня недели
Квартал и неделя года
Создание кастомных форматов
Локализованное форматирование
Манипуляции с датами
Методы add и subtract
Работа с годами и месяцами
Работа с днями и неделями
Работа с часами, минутами и секундами
Работа с миллисекундами
Установка конкретных значений
Методы startOf и endOf
Цепочки операций
Получение компонентов даты
Извлечение года, месяца и дня
Извлечение времени
День недели и день года
Номер недели в году
Номер квартала
Получение количества дней в месяце
Unix timestamp и миллисекунды
Сравнение дат
Методы isBefore и isAfter
Метод isSame
Метод isBetween
Указание единиц сравнения
Работа с граничными случаями
Сравнение с учетом часовых поясов
Разница между датами
Метод diff
Вычисление разницы в различных единицах
Получение дробных значений
Вычисление возраста
Расчет длительности периодов
Плагины Day.js
Архитектура плагинов
Подключение и регистрация плагинов
Порядок загрузки плагинов
Конфликты между плагинами
Плагин AdvancedFormat
Дополнительные токены форматирования
Порядковые числительные
Квартальное форматирование
Номер недели ISO
Плагин CustomParseFormat
Парсинг с указанием формата
Строгий и нестрогий режимы
Работа со множественными форматами
Обработка некорректных данных
Плагин Duration
Создание объектов длительности
Операции с длительностью
Форматирование длительности
Гуманизация временных интервалов
Преобразование между единицами
Плагин RelativeTime
Относительное время от текущего момента
Настройка порогов
Кастомизация строк вывода
Работа с прошлым и будущим
Плагин Calendar
Календарное представление дат
Настройка текстов календаря
Работа с референсными датами
Плагин WeekOfYear
Вычисление номера недели
ISO-недели
Настройка начала недели
Получение года для недели
Плагин IsoWeek
Стандарт ISO 8601
Работа с ISO-неделями
День недели по ISO
Начало и конец ISO-недели
Плагин QuarterOfYear
Работа с кварталами
Получение и установка квартала
Операции с кварталами
Плагин Timezone
Работа с часовыми поясами
Конвертация между зонами
Получение смещения
Работа с IANA timezone
UTC и локальное время
Летнее время
Плагин UTC
Работа в режиме UTC
Конвертация в UTC и обратно
Особенности UTC-операций
Плагин IsSameOrBefore и IsSameOrAfter
Комбинированные проверки
Использование в условиях
Указание единиц измерения
Плагин IsBetween
Проверка вхождения в интервал
Включающие и исключающие границы
Единицы измерения
Плагин DayOfYear
Получение дня года
Установка по дню года
Вычисления с днями года
Плагин WeekYear
Год недели по ISO
Разница между календарным и недельным годом
Плагин MinMax
Поиск минимальной даты
Поиск максимальной даты
Работа с массивами дат
Плагин ToObject и ToArray
Преобразование в объект
Преобразование в массив
Структура результатов
Плагин ObjectSupport
Создание дат из объектов
Установка значений через объекты
Добавление и вычитание через объекты
Плагин LocalizedFormat
Локализованные паттерны
Стандартные форматы дат
Форматы времени по локали
Плагин UpdateLocale
Модификация существующих локалей
Переопределение настроек
Создание вариантов локалей
Локализация
Концепция локалей в Day.js
Подключение языковых пакетов
Глобальная и локальная установка локали
Доступные локали
Создание собственной локали
Настройка форматов
Названия месяцев и дней недели
Относительное время в разных локалях
Работа с форматами ISO 8601
Парсинг ISO-строк
Форматирование в ISO
Недели ISO
Длительность по ISO
Производительность
Сравнение производительности с другими библиотеками
Оптимизация при работе с большими объемами
Кеширование и переиспользование объектов
Минимизация операций парсинга
Выбор правильных плагинов
Паттерны использования
Работа с формами и пользовательским вводом
Валидация дат от пользователя
Хранение дат в базе данных
Работа с API и JSON
Отображение дат в интерфейсе
Фильтрация и сортировка по датам
Интеграция с фреймворками
React и hooks
Vue и computed properties
Angular и pipes
Серверный рендеринг
Миграция с Moment.js
Основные отличия API
Таблица соответствия методов
Отсутствующий функционал
Замена плагинов
Стратегия постепенной миграции
Миграция с нативного Date
Преимущества перехода на Day.js
Эквиваленты методов Date
Решение типичных проблем Date
Типовые задачи
Определение рабочих дней
Работа с дедлайнами
Расчет праздничных дней
Временные диапазоны
Периодические события
Конвертация форматов
Отладка и обработка ошибок
Диагностика проблем с парсингом
Проверка валидности дат
Работа с некорректными данными
Логирование и отладка
Типичные ошибки и их решения
Расширение функциональности
Создание собственных плагинов
Структура плагина
API для разработки плагинов
Регистрация и распространение
Примеры кастомных плагинов
Тестирование кода с датами
Мокирование текущего времени
Тестирование с фиксированными датами
Тестирование часовых поясов
Тестирование граничных случаев
Инструменты для тестирования
Безопасность
Валидация пользовательского ввода
Защита от XSS через даты
Безопасный парсинг
Ограничения диапазонов
Альтернативы и экосистема
date-fns
Luxon
js-joda
Temporal API
Выбор библиотеки для проекта
Справочник API
Полный список методов
Параметры методов
Возвращаемые значения
Цепочки вызовов
Справочник токенов форматирования
Таблица токенов
Примеры использования
Особенности токенов
Справочник единиц измерения
Поддерживаемые единицы
Сокращения единиц
Использование в методах