Flatpickr использует набор токенов форматирования, которые определяют, как выбранная дата отображается в инпуте и как она интерпретируется при выводе пользователю. Формат задаётся строкой, состоящей из специальных символов, каждый из которых заменяется на соответствующую часть даты.
Ключевой принцип работы форматирования заключается в том, что строка формата разбивается на последовательность токенов, а затем каждый токен заменяется значением из объекта даты.
Форматирование в Flatpickr строится на двух типах элементов:
Пример формата:
dateFormat: "Y-m-d"
Результат:
2026-05-30
Здесь:
Y — год в 4-значном форматеm — месяц с ведущим нулёмd — день месяца с ведущим нулёмFlatpickr поддерживает несколько вариантов отображения года:
Примеры:
"Y" -> 2026
"y" -> 26
Год всегда извлекается из объекта Date без
преобразования временной зоны.
Для месяцев используется несколько токенов в зависимости от формата отображения:
Примеры:
"m" -> 05
"n" -> 5
"F" -> May
"M" -> May (или сокращение в локали)
При использовании F и M учитывается текущая
локализация Flatpickr, что позволяет автоматически адаптировать названия
месяцев под язык интерфейса.
Для отображения дня используются следующие токены:
Примеры:
"d" -> 09
"j" -> 9
"D" -> Mon
"l" -> Monday
Flatpickr позволяет гибко управлять отображением дня недели:
Пример:
"w" -> 6
Часовой формат зависит от выбранного режима (12-часовой или 24-часовой), но токены остаются универсальными:
Примеры:
"H" -> 18
"G" -> 8
"h" -> 06
"g" -> 6
Минуты и секунды представлены простыми токенами:
Примеры:
"i" -> 05
"S" -> 09
Комбинирование токенов позволяет строить любые временные форматы:
"Y-m-d H:i"
Результат:
2026-05-30 18:45
Или с 12-часовым форматом:
"Y-m-d h:i"
2026-05-30 06:45
Для 12-часового формата используется токен:
Примеры:
"h:i K" -> 06:45 PM
"h:i k" -> 06:45 pm
Для отображения порядковых числительных (например, 1st, 2nd, 3rd) используется токен:
Пример:
"dS F" -> 1st May
Поведение зависит от локали, так как суффиксы различаются в разных языках.
Любой символ, который не должен интерпретироваться как токен, экранируется с помощью обратного слэша:
dateFormat: "Y-m-d \\at H:i"
Результат:
2026-05-30 at 18:45
Без экранирования слово at было бы попыткой
интерпретации как токены.
Некоторые токены напрямую зависят от текущей локали:
F, M)D, l)S)Flatpickr использует объект локали, где задаются массивы названий:
locale: {
months: ["January", "February", ...],
weekdays: ["Sunday", "Monday", ...]
}
При смене локали формат остаётся тем же, но отображаемые значения меняются автоматически.
На практике часто используются следующие шаблоны:
"Y-m-d" // 2026-05-30
"d.m.Y" // 30.05.2026
"j F Y" // 30 May 2026
"D, d M Y" // Sat, 30 May 2026
"Y-m-d H:i:S" // 2026-05-30 18:45:09
"h:i K" // 06:45 PM
Каждый из этих шаблонов представляет определённый уровень детализации даты и времени, от минимального до полного.
Flatpickr выполняет разбор строки формата последовательно, без предварительного компилирования в регулярные выражения. Это означает:
Формат может изменяться после инициализации:
instance.set("dateFormat", "d.m.Y");
Это приводит к немедленному изменению отображения выбранной даты без пересоздания компонента.
При включённой опции ручного ввода (allowInput) формат
токенов используется и для парсинга строки. Это означает, что:
Date;Система токенов имеет ряд особенностей:
В сложных интерфейсах форматирование применяется не только для отображения, но и для синхронизации данных:
В таких случаях формат становится частью контрактного слоя между UI и бизнес-логикой приложения.