Flatpickr использует собственную систему токенов для описания
форматов даты и времени. В отличие от стандартных JS-объектов
Date или строк ISO, форматирование в библиотеке задаётся
через строку dateFormat, которая интерпретируется набором
символов:
d — день (01–31)j — день без ведущего нуля (1–31)m — месяц (01–12)n — месяц без нуля (1–12)Y — полный год (2026)y — последние две цифры года (26)H — часы (00–23)i — минуты (00–59)S — секунды (00–59)Эта система позволяет гибко описывать региональные стандарты отображения даты без привязки к внутреннему формату JavaScript.
Форматы даты в пользовательских интерфейсах зависят от культурных и
национальных стандартов. Flatpickr позволяет адаптировать отображение
под конкретный регион, изменяя dateFormat и
locale.
Американский стандарт предполагает порядок: месяц → день → год.
flatpickr("#input", {
dateFormat: "m/d/Y"
});
Пример результата:
12/31/2026
Особенности:
/ как разделительЕвропейский формат меняет порядок на более логичный с точки зрения хронологии: день → месяц → год.
flatpickr("#input", {
dateFormat: "d/m/Y"
});
Пример результата:
31/12/2026
Особенности:
ISO 8601 считается универсальным форматом для API, баз данных и обмена данными.
flatpickr("#input", {
dateFormat: "Y-m-d"
});
Пример результата:
2026-12-31
Особенности:
Flatpickr поддерживает локализацию через объект locale.
Он влияет на названия месяцев, дней недели и иногда на порядок
отображения.
import { Russian } from "flatpickr/dist/l10n/ru.js";
flatpickr("#input", {
locale: Russian,
dateFormat: "d.m.Y"
});
Для русскоязычного интерфейса часто используется точка как разделитель:
31.12.2026
При этом локаль не изменяет dateFormat автоматически —
формат задаётся вручную.
Flatpickr различает два уровня представления:
Это позволяет хранить данные в одном виде, а показывать в другом.
flatpickr("#input", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "d F Y"
});
Результат:
2026-12-3131 December 2026Разные регионы требуют не только перестановки компонентов даты, но и изменения визуальных разделителей и словесного представления.
dateFormat: "d.m.Y"
Пример:
31.12.2026
Используется точка как разделитель, что уменьшает визуальную путаницу с числовыми диапазонами.
dateFormat: "d/m/Y"
Пример:
31/12/2026
Формат совпадает с большинством европейских стран, но может
сочетаться с локализованными названиями месяцев при
altFormat.
dateFormat: "Y/m/d"
Пример:
2026/12/31
Характерная особенность — сохранение годового приоритета даже в пользовательских интерфейсах.
dateFormat: "Y-m-d"
Пример:
2026-12-31
ISO-подобный формат используется как основной стандарт.
При добавлении времени региональные различия становятся ещё заметнее.
dateFormat: "d.m.Y H:i"
Пример:
31.12.2026 18:45
dateFormat: "m/d/Y h:i K"
Пример:
12/31/2026 06:45 PM
Где:
h — часы (1–12)K — AM/PMFlatpickr позволяет унифицировать внутреннее хранение данных при различном пользовательском представлении. Это особенно важно для международных приложений.
flatpickr("#input", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "d.m.Y"
});
Такой подход решает проблему:
Некоторые форматы приводят к неоднозначности интерпретации:
01/02/2026
Это может означать:
Flatpickr решает эту проблему за счёт явного задания
dateFormat, исключая автоматическое угадывание.
Flatpickr не только отображает даты, но и парсит ввод. При этом
строгая привязка к dateFormat означает:
flatpickr("#input", {
dateFormat: "d.m.Y"
});
В этом случае допустим ввод:
31.12.2026
Но ввод:
12/31/2026
не будет корректно распознан.
Flatpickr позволяет менять не только порядок, но и символы разделения:
dateFormat: "d|m|Y"
или
dateFormat: "d-m-Y"
Это используется в интерфейсах, где требуется визуальная уникальность или строгая стилизация под дизайн-систему.
Региональный формат не влияет на внутреннюю модель календаря.
Flatpickr всегда оперирует объектами Date, а форматирование
происходит только на уровне представления.
Это означает:
В многоязычных системах обычно используется связка:
locale — язык интерфейсаdateFormat — региональный форматaltFormat — человекочитаемое отображениеПример конфигурации:
flatpickr("#input", {
locale: "ru",
dateFormat: "Y-m-d",
altInput: true,
altFormat: "j F Y"
});
Такой подход позволяет:
При передаче данных на сервер важно использовать форматы без двусмысленности. На практике почти всегда применяется ISO:
2026-12-31
Flatpickr в этом случае выполняет роль только UI-слоя, а не источника истины.
При получении данных обратно сервер также должен возвращать значения в согласованном формате, иначе возможно расхождение отображения и логики.
Формат даты влияет не только на техническую корректность, но и на скорость восприятия интерфейса:
altInputFlatpickr позволяет балансировать между этими требованиями без изменения архитектуры приложения.