javascript42
Главная
Все учебники
Блог
Учебник Moment.js
Введение
Что такое Moment.js и зачем он нужен
История появления и развития библиотеки
Установка и подключение
Первое знакомство с API
Альтернативы и сравнение с нативными возможностями
Создание объектов даты и времени
Текущая дата и время
Создание из строки
Создание из массива значений
Создание из объекта
Создание из Unix-времени
Создание из объекта Date
Клонирование объектов moment
Валидация созданных объектов
Парсинг строк
Базовый парсинг без формата
Парсинг с указанием формата
Использование нескольких форматов
Строгий режим парсинга
Парсинг специальных форматов ISO 8601
Парсинг RFC 2822
Обработка ошибок при парсинге
Локализованный парсинг
Форматирование вывода
Основы форматирования
Токены форматирования для года, месяца, дня
Токены для времени
Токены для дня недели
Токены для квартала
Токены для недели года
Форматирование с временными зонами
Локализованные форматы
Экранирование символов в формате
Пользовательские форматы
Манипуляции с датами
Добавление времени
Вычитание времени
Начало временного периода
Конец временного периода
Установка конкретных значений
Изменение нескольких полей одновременно
Цепочки операций
Получение значений
Получение года
Получение месяца
Получение дня месяца
Получение дня недели
Получение часов, минут, секунд, миллисекунд
Получение квартала
Получение недели года
Получение дня года
Получение Unix-времени
Получение количества дней в месяце
Сравнение дат
Метод isBefore
Метод isAfter
Метод isSame
Метод isSameOrBefore
Метод isSameOrAfter
Метод isBetween
Сравнение с учетом гранулярности
Операторы сравнения и valueOf
Разница между датами
Вычисление разницы в миллисекундах
Разница в различных единицах времени
Округление результатов
Учет гранулярности при расчете разницы
Практические примеры расчета возраста и длительности
Проверка типов и свойств
Проверка валидности
Определение leap-года
Проверка летнего времени
Проверка момента на момент
Проверка до или после Unix Epoch
Локализация
Загрузка локалей
Переключение глобальной локали
Локаль для конкретного объекта
Создание пользовательской локали
Настройка названий месяцев и дней недели
Настройка форматов даты и времени
Настройка относительного времени
Порядковые числительные
Настройка первого дня недели
Список доступных локалей
Относительное время
Метод fromNow
Метод toNow
Метод from
Метод to
Настройка порогов для относительного времени
Удаление суффиксов
Форматирование календарных дат
Временные зоны
Основы работы с временными зонами
Установка moment-timezone
Создание объектов с временной зоной
Конвертация между зонами
Получение информации о зоне
Работа с UTC
Локальное время
Список временных зон
Длительности
Создание объектов длительности
Создание из миллисекунд
Создание из строки ISO 8601
Получение значений длительности
Гуманизация длительности
Математические операции с длительностями
Сравнение длительностей
Конвертация длительности
Округление длительностей
Расширенное форматирование
Пользовательские токены
Условное форматирование
Форматирование с учетом локали
Форматирование длинных дат
Форматирование коротких дат
Комбинирование токенов
Работа с неделями
ISO-недели
Год недели
День недели
Установка недели года
Получение объекта недели
Локализованные недели
Работа с кварталами
Установка квартала
Начало и конец квартала
Операции с кварталами
Плагины и расширения
Архитектура плагинов
Создание собственного плагина
Популярные плагины
Интеграция с другими библиотеками
Производительность и оптимизация
Immutability объектов moment
Когда использовать клонирование
Кэширование форматов
Избежание лишних операций парсинга
Сравнение производительности с нативными Date
Рекомендации по использованию в production
Проблемы и подводные камни
Mutability и неожиданное поведение
Проблемы с парсингом неоднозначных форматов
Конфликты временных зон
Размер библиотеки
Статус maintenance mode
Миграция на современные альтернативы
Интеграция с фреймворками
Использование в React
Использование в Vue
Использование в Angular
Серверная разработка на Node.js
Webpack и tree-shaking
Практические паттерны
Валидация пользовательского ввода
Работа с формами
Отображение дат в интерфейсе
Сортировка массивов дат
Группировка событий по датам
Расчет бизнес-дней
Работа с праздниками
Построение календарей
Тестирование кода с датами
Моки текущей даты
Тестирование временных зон
Тестирование локализации
Изоляция тестов
Миграция и современные альтернативы
Причины перехода на другие решения
Day.js как прямая замена
Luxon от автора Moment
date-fns и функциональный подход
Temporal API в будущем JavaScript
Стратегии постепенной миграции