Параметр mode в Flatpickr определяет фундаментальное
поведение календаря: какой тип выбора дат будет доступен пользователю.
От его значения зависит логика работы компонента, структура возвращаемых
данных и взаимодействие с пользовательским интерфейсом.
Режим single является значением по умолчанию и
предназначен для выбора одной даты. В этом режиме календарь работает как
классический datepicker: пользователь может выбрать только одну
конкретную дату, а любое новое выбранное значение полностью заменяет
предыдущее.
dateFormat и altInput);flatpickr("#input", {
mode: "single"
});
В single режиме значение selectedDates
содержит массив из одного элемента или пустой массив:
selectedDates = [Date]
Даже при одиночном выборе библиотека сохраняет унифицированную структуру массива, что упрощает работу с API.
Режим используется в сценариях:
multipleРежим multiple позволяет выбирать несколько независимых
дат. Каждое новое нажатие на календарь добавляет или удаляет дату из
набора выбранных значений.
flatpickr("#input", {
mode: "multiple"
});
В этом режиме selectedDates становится полноценным
массивом:
selectedDates = [Date, Date, Date]
При этом строковое значение input.value формируется на
основе dateFormat и разделителя, заданного параметром
conjunction.
Параметр conjunction управляет тем, как даты
объединяются в строке:
flatpickr("#input", {
mode: "multiple",
conjunction: ", "
});
Пример результата:
2026-01-01, 2026-01-05, 2026-01-10
disable и enable
для фильтрации дат.Режим используется в задачах:
rangeРежим range предназначен для выбора интервала между
двумя датами: начальной и конечной. Этот режим существенно отличается от
multiple, так как формирует непрерывный временной
отрезок.
flatpickr("#input", {
mode: "range"
});
В режиме диапазона selectedDates всегда содержит
максимум два значения:
selectedDates = [startDate, endDate]
Если конечная дата ещё не выбрана:
selectedDates = [startDate]
По умолчанию даты в поле ввода разделяются через
toStringSeparator, который можно переопределить:
flatpickr("#input", {
mode: "range",
dateFormat: "Y-m-d",
locale: {
rangeSeparator: " — "
}
});
Пример результата:
2026-01-01 — 2026-01-10
При выборе диапазона библиотека автоматически вычисляет все промежуточные даты, визуально подсвечивая их в календаре. Это создаёт эффект непрерывного выделения.
Ключевые особенности:
selectedDates;Если диапазон уже выбран:
Режим используется в задачах:
single → один элемент в массивеmultiple → произвольное количество элементовrange → максимум два элемента (границы интервала)single — замена значенияmultiple — накопление значенийrange — построение интервалаsingle — точка во времениmultiple — набор точекrange — непрерывный участок времениdateFormatВо всех режимах влияет на итоговое строковое представление. Особенно
критичен в range, где определяет читаемость интервала.
minDate и
maxDateОграничивают доступные даты:
single — блокируют выбор отдельных значений;multiple — исключают некоторые элементы набора;range — ограничивают границы интервала.disableПозволяет исключать конкретные даты или диапазоны, влияя на доступность выбора во всех режимах.
selectedDatesНезависимо от режима, Flatpickr всегда использует единый интерфейс:
instance.selectedDates
Однако интерпретация массива зависит от mode, что делает
этот параметр ключевым для всей логики работы календаря.
Выбор режима определяет архитектуру взаимодействия:
single;multiple;range.Каждый режим формирует собственную модель восприятия времени: точечную, дискретную или интервальную, что напрямую влияет на UX и структуру данных в приложении.