javascript42
Главная
Все учебники
Блог
Учебник Luxon
Введение
Зачем нужна Luxon
История создания и место среди других библиотек
Установка и подключение
Первый пример работы
Основы DateTime
Создание объекта DateTime
Текущая дата и время
Создание из компонентов
Создание из миллисекунд и секунд
Создание из строки ISO
Создание из объекта
Получение значений полей
Год, месяц, день
Час, минута, секунда, миллисекунда
День недели и день года
Неделя года
Квартал
Эра и смещение
Форматирование DateTime
Метод toISO
Метод toISODate и toISOTime
Метод toRFC2822
Метод toHTTP
Метод toSQL
Метод toJSON
Метод toString и toLocaleString
Метод toFormat
Токены форматирования
Экранирование литералов
Примеры сложных форматов
Разбор строк
Метод fromFormat
Соответствие токенов при разборе
Обработка неоднозначностей
Метод fromRFC2822
Метод fromHTTP
Метод fromSQL
Метод fromISO
Опции разбора
Строгий режим
Часовой пояс
Локаль
Обработка ошибок при разборе
Проверка валидности через isValid
Получение причины ошибки через invalidReason
Объяснение ошибки через invalidExplanation
Часовые пояса
Концепция часовых поясов в Luxon
Установка часового пояса
Метод setZone
Опция zone при создании
Системный часовой пояс
UTC
Локальный часовой пояс
Именованные часовые пояса IANA
Фиксированные смещения
Получение информации о часовом поясе
Свойство zoneName
Свойство offset
Свойство offsetNameShort и offsetNameLong
Метод isInDST
Конвертация между часовыми поясами
Разница между setZone и toUTC/toLocal
Сохранение момента времени при смене зоны
Работа с летним временем
Переходы на летнее время
Несуществующие и неоднозначные времена
Обработка граничных случаев
Арифметика с датами
Добавление и вычитание времени
Метод plus
Метод minus
Единицы измерения
Объект Duration как аргумент
Начало и конец периода
Метод startOf
Метод endOf
Разница между датами
Метод diff
Выбор единиц измерения
Метод diffNow
Округление и обрезание
Сравнение дат
Операторы сравнения
Метод equals
Метод hasSame
Duration
Создание Duration
Метод fromObject
Метод fromMillis
Получение из разницы дат
Свойства и методы Duration
Доступ к компонентам
Свойства as
Метод shiftTo
Нормализация Duration
Метод normalize
Метод rescale
Арифметика с Duration
Метод plus и minus
Метод negate
Форматирование Duration
Метод toHuman
Преобразование в другие типы
Метод toMillis
Метод toObject
Interval
Создание Interval
Метод fromDateTimes
Метод after и before
Свойства Interval
Начало и конец интервала
Длительность интервала
Проверка валидности
Операции с интервалами
Метод contains
Метод overlaps
Метод intersection
Метод union
Метод abutsStart и abutsEnd
Метод engulfs
Разбиение интервалов
Метод splitBy
Метод splitAt
Метод divideEqually
Форматирование Interval
Метод toLocaleString
Локализация
Установка локали
Глобальная настройка
Локаль для конкретного объекта
Метод setLocale и reconfigure
Форматирование с учетом локали
Пресеты форматирования
Названия месяцев и дней недели
Метод Info.months
Метод Info.weekdays
Метод Info.eras
Опции локализации
Нумерационная система
Календарная система
Система вывода
Региональные особенности
Порядок даты
Разделители
12/24-часовой формат
Работа с неделями
Номер недели
ISO-недели
Локальные недели
Создание даты из номера недели
Метод fromObject с weekYear
День недели
Нумерация дней недели
Локализация дней недели
Операции с неделями
Начало и конец недели
Добавление недель
Валидация и обработка ошибок
Проверка корректности DateTime
Свойство isValid
Причины невалидности
Обработка невалидных объектов
Поведение методов на невалидных объектах
Цепочки вызовов
Проверка существования даты
Несуществующие даты
Ошибки при разборе
Неправильный формат
Несоответствие данных
Защитное программирование
Настройки и конфигурация
Глобальные настройки
Settings.defaultZone
Settings.defaultLocale
Settings.throwOnInvalid
Settings.defaultOutputCalendar
Настройки для конкретных объектов
Метод reconfigure
Цепочка настроек
Переопределение поведения
Информационные методы
Класс Info
Получение свойств локали
Получение свойств часового пояса
Проверка функций
Метод features
Доступность Intl
Поддержка часовых поясон
Проверка системных возможностей
Работа с миллисекундами и таймстампами
Unix-время
Метод toSeconds
Метод fromMillis и fromSeconds
Конвертация между форматами
JavaScript Date
Метод toJSDate
Метод fromJSDate
Взаимодействие с нативными API
Immutability и производительность
Неизменяемость объектов
Каждый метод возвращает новый объект
Последствия для памяти
Кеширование и оптимизация
Переиспользование объектов
Клонирование объектов
Сравнение производительности
Luxon vs Moment vs date-fns
Когда использовать что
Практические паттерны
Работа с формами
Валидация пользовательского ввода
Отображение дат в UI
Работа с API
Сериализация для отправки
Десериализация ответов
Работа с базами данных
Сохранение временных меток
Учет часовых поясов
Календари и расписания
Повторяющиеся события
Определение рабочих дней
Таймеры и countdown
Обратный отсчет
Измерение времени выполнения
Миграция с других библиотек
Переход с Moment.js
Отличия в API
Таблица соответствия методов
Типичные ошибки
Переход с date-fns
Философские различия
Адаптация кода
Переход с Day.js
Совместимость API
Недостающие функции
Расширенные темы
Создание собственных форматов
Регистрация пользовательских токенов
Макросы форматирования
Работа со старыми календарями
Юлианский календарь
Другие календарные системы
Астрономические вычисления
Солнечное и лунное время
Восход и закат
TypeScript интеграция
Типы Luxon
DateTime, Duration, Interval
Вспомогательные типы
Типобезопасность
Строгая типизация форматов
Проверка на этапе компиляции
Расширение типов
Создание собственных типов
Отладка
Типичные проблемы
Потеря часового пояса
Неправильный разбор строк
Проблемы с локалью
Инструменты отладки
Логирование объектов
Инспекция внутреннего состояния
Тестирование кода с датами
Моки текущего времени
Фиксация часовых поясов
Совместимость и поддержка
Поддержка браузеров
Требования к Intl
Полифиллы
Node.js окружение
Версии Node.js
Особенности серверной разработки
Сборщики и бандлеры
Webpack
Rollup
Vite
Справочник API
Методы DateTime
Методы Duration
Методы Interval
Класс Settings
Класс Zone