hourIncrement в библиотеке Flatpickr управляет шагом
изменения часов при выборе времени. Этот параметр определяет, с каким
интервалом будут увеличиваться или уменьшаться значения часов в
интерфейсе и при использовании стрелок/спиннера.
Основная задача параметра — ограничить набор доступных значений часов и сделать ввод времени более предсказуемым и контролируемым. Это особенно важно в интерфейсах, где требуется строгое соблюдение временных интервалов: бронирования, расписания, логистические системы, тайм-слоты.
По умолчанию Flatpickr использует шаг 1 час, если не указано иное значение:
flatpickr("#input", {
enableTime: true
});
В этом случае пользователь может выбрать любой час от 0 до 23 (или 1–12 при 12-часовом формате), изменяя значение по единице.
Если задать hourIncrement, шаг изменяется:
flatpickr("#input", {
enableTime: true,
hourIncrement: 2
});
Теперь доступные значения часов будут: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22.
hourIncrement принимает целое положительное число.
Рекомендуемые значения:
1 — стандартное поведение (каждый час доступен)2 — выбор через час3, 4, 6 — для укрупнённых
временных сеток12 — половина суток (полезно для упрощённых
расписаний)Нежелательные значения:
0 — логически некорректно, приводит к неконтролируемому
поведениюПараметр влияет сразу на несколько уровней интерфейса:
Стрелки изменения времени (если включён time picker) будут менять
часы на величину hourIncrement.
Пример:
{
enableTime: true,
hourIncrement: 3
}
Результат:
При ручном вводе Flatpickr нормализует значение в соответствии с шагом:
Например при hourIncrement: 2:
5 может быть преобразован в 4 или
6 (в зависимости от конфигурации и версии)13 может быть скорректирован до 12
или 14В некоторых режимах (особенно при использовании dropdown или scroll
UI) список доступных часов фактически строится на основе
hourIncrement.
hourIncrement работает независимо от формата отображения
времени, но визуальное поведение отличается.
flatpickr("#input", {
enableTime: true,
time_24hr: true,
hourIncrement: 4
});
Значения:
0, 4, 8, 12, 16, 20
Диапазон полный, шаг равномерный.
flatpickr("#input", {
enableTime: true,
time_24hr: false,
hourIncrement: 3
});
Значения часов:
1, 4, 7, 10 (AM/PM переключается отдельно)
Важно учитывать:
minuteIncrementhourIncrement часто используется совместно с
minuteIncrement, и их комбинация формирует сетку
допустимого времени.
Пример:
flatpickr("#input", {
enableTime: true,
hourIncrement: 2,
minuteIncrement: 15
});
Возможные значения:
Однако важно понимать, что:
hourIncrement влияет только на часыminuteIncrement — только на минутыflatpickr("#booking", {
enableTime: true,
hourIncrement: 1,
minuteIncrement: 30
});
Результат:
flatpickr("#shift", {
enableTime: true,
hourIncrement: 4,
time_24hr: true
});
Используется для смен:
flatpickr("#quickTime", {
enableTime: true,
hourIncrement: 6
});
Минимизация выбора:
При ручном вводе времени Flatpickr стремится привести значение к ближайшему допустимому шагу.
Особенности:
setDate) возможна
автоматическая коррекцияПример:
instance.setDate("10:37");
При hourIncrement: 2 результат может быть скорректирован
до ближайшего допустимого часа, например 10:00 или
12:00.
Flatpickr не предоставляет отдельного метода для изменения
hourIncrement после инициализации, поэтому:
Пример пересоздания:
const fp = flatpickr("#input", {
enableTime: true,
hourIncrement: 1
});
fp.destroy();
flatpickr("#input", {
enableTime: true,
hourIncrement: 3
});
Если сервер ожидает строго фиксированные временные слоты, но
hourIncrement задан иначе, возможно рассогласование.
minTime
и maxTimeПри задании ограничений времени:
{
enableTime: true,
minTime: "10:00",
maxTime: "18:00",
hourIncrement: 3
}
Возможны ситуации:
При сложных комбинациях параметров:
disableenableminTimemaxTimehourIncrementрезультирующее поведение может отличаться от ожидаемого линейного шага.
При отображении списка значений hourIncrement формирует
набор доступных пунктов.
Стрелки увеличивают значение строго по шагу.
При использовании клавиатуры (стрелки вверх/вниз):
hourIncrementhourIncrement только при наличии реальной
бизнес-необходимостиminuteIncrement для полного контроля
временной сеткиhourIncrement без включённого
enableTimeПри использовании dateFormat:
{
enableTime: true,
hourIncrement: 2,
dateFormat: "Y-m-d H:i"
}
Форматирование не изменяет шаг, но влияет на отображение результата. Flatpickr всегда хранит внутреннее значение согласно установленному шагу, независимо от формата вывода.
hourIncrement можно рассматривать как дискретизатор оси
времени по часам: