Комбинирование даты и времени в Flatpickr строится вокруг базового
механизма расширения календаря часовым интерфейсом. Ключевой точкой
становится параметр enableTime, который добавляет к
календарю блок выбора времени и переводит компонент из режима «дата» в
режим «дата + время».
При активации временного режима структура значения перестаёт быть
ограниченной только датой. Внутреннее состояние начинает хранить объект
Date, включающий часы, минуты и при необходимости секунды.
Это влияет как на отображение, так и на форматирование значения в поле
ввода.
flatpickr("#input", {
enableTime: true
});
Без дополнительных настроек время отображается в 12-часовом формате, а шаг изменения минут равен 5. Эти значения определяются конфигурацией по умолчанию и могут быть изменены через дополнительные параметры.
При включённом времени Flatpickr изменяет поведение сериализации
значения. Стандартный формат строки формируется на основе
dateFormat, в который необходимо явно включать элементы
времени.
flatpickr("#input", {
enableTime: true,
dateFormat: "Y-m-d H:i"
});
В данном случае формат включает:
Y — годm — месяцd — деньH — часы в 24-часовом форматеi — минутыЕсли формат времени не указан, часы и минуты могут не отображаться в строковом значении, несмотря на то, что они присутствуют во внутреннем состоянии.
Параметр time_24hr управляет представлением времени. При
значении true интерфейс переключается на 24-часовой формат,
исключая AM/PM индикаторы. Это влияет только на отображение, не изменяя
внутреннее хранение значения.
flatpickr("#input", {
enableTime: true,
time_24hr: true
});
Особенности поведения:
Для управления дискретностью выбора времени используются параметры
minuteIncrement и hourIncrement. Они задают
шаг изменения соответствующих значений в интерфейсе.
flatpickr("#input", {
enableTime: true,
minuteIncrement: 10,
hourIncrement: 2
});
Определяет интервал минут:
Используется реже, но влияет на навигацию по часам:
Параметр defaultDate поддерживает передачу как даты, так
и времени одновременно. При этом важно учитывать формат строки, чтобы
Flatpickr корректно распознал компоненты времени.
flatpickr("#input", {
enableTime: true,
dateFormat: "Y-m-d H:i",
defaultDate: "2026-05-30 14:30"
});
При передаче строки без времени, при включённом
enableTime, часы и минуты будут установлены в значение по
умолчанию (обычно 00:00 или текущее время в зависимости от конфигурации
и режима инициализации).
При использовании временного режима параметры minDate и
maxDate начинают учитывать не только день, но и конкретное
время. Это позволяет задавать точные границы допустимого выбора.
flatpickr("#input", {
enableTime: true,
dateFormat: "Y-m-d H:i",
minDate: "2026-05-30 09:00",
maxDate: "2026-05-30 18:00"
});
Особенность заключается в том, что если дата совпадает с границей, но время выходит за пределы, значение считается недопустимым. Интерфейс блокирует такие выборы на уровне UI.
Flatpickr поддерживает два уровня представления:
DateПри включённом времени эти уровни начинают расходиться сильнее, чем в режиме только даты, поскольку добавляется точность до минут (или секунд, если включены соответствующие настройки).
Для управления отображением часто используется altInput,
который позволяет разделить формат хранения и формат визуального
представления.
flatpickr("#input", {
enableTime: true,
altInput: true,
altFormat: "d.m.Y H:i",
dateFormat: "Y-m-d H:i"
});
В этом случае:
dateFormat отвечает за сохранениеaltFormat отвечает за отображение пользователюПри комбинированном режиме даты и времени локаль влияет на:
Flatpickr не изменяет внутреннее значение в зависимости от локали, но визуальное представление может значительно отличаться.
При ручном вводе значения с временем парсер Flatpickr анализирует
строку согласно dateFormat. Ошибки чаще всего возникают при
несоответствии формата:
flatpickr("#input", {
enableTime: true,
dateFormat: "Y-m-d H:i"
});
Корректные строки:
2026-05-30 14:302026-01-01 00:00Некорректные:
30-05-2026 2:30 PM (при 24-часовом формате)2026/05/30 (без времени при строгом формате)При отсутствии defaultDate и включённом
enableTime Flatpickr может использовать текущее системное
время как основу для инициализации. Это поведение зависит от контекста и
может быть изменено через дополнительные настройки или явное задание
значения.
flatpickr("#input", {
enableTime: true,
time_24hr: true,
dateFormat: "Y-m-d H:i"
});
При сравнении значений в режиме даты и времени учитывается полный таймстамп. Это означает, что:
2026-05-30 10:00 и 2026-05-30 11:00
считаются разными значениямиЭто особенно важно при использовании Flatpickr в формах бронирования, расписаний и системах событий, где время является критическим параметром.
Flatpickr может быть расширен до поддержки секунд через дополнительные настройки или плагины. В таком случае формат строки и шаг изменения увеличиваются до трёхуровневой точности:
flatpickr("#input", {
enableTime: true,
enableSeconds: true,
time_24hr: true,
dateFormat: "Y-m-d H:i:S"
});
Добавление секунд увеличивает нагрузку на интерфейс, но обеспечивает максимальную точность временных меток.
При отправке формы значение поля с включённым временем передаётся как
строка, соответствующая dateFormat. Серверная обработка
должна учитывать полный формат, включая временную часть.
В типичных сценариях используются ISO-подобные форматы или стандартизированные строки, обеспечивающие однозначную интерпретацию:
2026-05-30 14:302026-05-30T14:30:00Flatpickr сам по себе не принуждает к ISO, но позволяет легко
привести формат к нему через dateFormat.