Параметр conjunction используется для настройки
разделителя между выбранными датами в строковом представлении значения
поля. Наиболее часто применяется в режиме множественного выбора
(multiple), однако может использоваться и в других
сценариях, где требуется контролировать формат отображаемой строки с
несколькими датами.
При работе с диапазонами дат (range) библиотека
Flatpickr по умолчанию использует параметр rangeSeparator,
который отвечает за разделитель между начальной и конечной датой
диапазона. Тем не менее понимание роли conjunction важно,
поскольку разработчики нередко пытаются применять его для изменения
отображения диапазона и сталкиваются с тем, что результат оказывается не
таким, как ожидалось.
При выборе нескольких дат Flatpickr формирует одну строку, содержащую все выбранные значения.
Пример:
flatpickr("#calendar", {
mode: "multiple"
});
После выбора трёх дат поле может содержать:
2026-05-10, 2026-05-15, 2026-05-20
Запятая и пробел используются по умолчанию.
Именно этот разделитель можно изменить через
conjunction.
flatpickr("#calendar", {
mode: "multiple",
conjunction: " | "
});
Результат:
2026-05-10 | 2026-05-15 | 2026-05-20
Все выбранные даты будут объединяться указанной строкой.
conjunction часто путают с настройкой диапазонаРассмотрим следующий код:
flatpickr("#calendar", {
mode: "range",
conjunction: " -> "
});
Многие ожидают увидеть:
2026-05-10 -> 2026-05-20
Однако параметр не влияет на отображение диапазона.
В режиме range используется отдельная настройка:
rangeSeparator
Поэтому для диапазона правильным вариантом будет:
flatpickr("#calendar", {
mode: "range",
rangeSeparator: " -> "
});
Результат:
2026-05-10 -> 2026-05-20
conjunction от rangeSeparatorconjunctionИспользуется для объединения множества независимых дат.
Пример:
flatpickr("#calendar", {
mode: "multiple",
conjunction: "; "
});
Результат:
01.06.2026; 05.06.2026; 10.06.2026
rangeSeparatorИспользуется для объединения начала и конца диапазона.
Пример:
flatpickr("#calendar", {
mode: "range",
rangeSeparator: " — "
});
Результат:
01.06.2026 — 10.06.2026
Это два разных механизма, работающих независимо друг от друга.
В качестве значения допускается любая строка.
Пример:
flatpickr("#calendar", {
mode: "multiple",
conjunction: " и "
});
Результат:
01.06.2026 и 05.06.2026 и 10.06.2026
Такой формат может использоваться в пользовательских интерфейсах, ориентированных на естественное отображение данных.
В качестве разделителя могут выступать любые символы.
Пример с вертикальной чертой:
flatpickr("#calendar", {
mode: "multiple",
conjunction: " | "
});
Результат:
01.06.2026 | 05.06.2026 | 10.06.2026
Пример со стрелкой:
flatpickr("#calendar", {
mode: "multiple",
conjunction: " → "
});
Результат:
01.06.2026 → 05.06.2026 → 10.06.2026
Пример со слешем:
flatpickr("#calendar", {
mode: "multiple",
conjunction: " / "
});
Результат:
01.06.2026 / 05.06.2026 / 10.06.2026
Допустимо использовать пустую строку.
flatpickr("#calendar", {
mode: "multiple",
conjunction: ""
});
Результат:
01.06.202605.06.202610.06.2026
Подобное решение обычно приводит к ухудшению читаемости и применяется редко.
Параметр хорошо сочетается с dateFormat.
flatpickr("#calendar", {
mode: "multiple",
dateFormat: "d.m.Y",
conjunction: ", "
});
Результат:
03.06.2026, 10.06.2026, 15.06.2026
Более компактный вариант:
flatpickr("#calendar", {
mode: "multiple",
dateFormat: "d/m",
conjunction: " | "
});
Результат:
03/06 | 10/06 | 15/06
altInput)Если используется альтернативное отображение даты, разделитель применяется к отображаемому тексту.
flatpickr("#calendar", {
mode: "multiple",
altInput: true,
altFormat: "F j, Y",
dateFormat: "Y-m-d",
conjunction: " • "
});
Пользователь увидит:
June 3, 2026 • June 10, 2026 • June 15, 2026
При этом в исходном поле будут храниться значения согласно
dateFormat.
Иногда требуется получить строку в определённом формате для последующей передачи на сервер.
flatpickr("#calendar", {
mode: "multiple",
conjunction: "; "
});
Полученная строка:
2026-06-01; 2026-06-05; 2026-06-10
Такой формат может быть удобен для последующего разбиения методом:
value.split("; ");
Разделитель влияет только на строковое представление значения и не изменяет структуру массива выбранных дат.
flatpickr("#calendar", {
mode: "multiple",
conjunction: " | ",
onChange(selectedDates) {
console.log(selectedDates);
}
});
В консоль будет передан массив объектов Date:
[
Date,
Date,
Date
]
Независимо от выбранного разделителя.
conjunction не оказывает влиянияПараметр не используется в следующих случаях:
singleflatpickr("#calendar", {
mode: "single",
conjunction: " | "
});
Выбирается только одна дата, поэтому объединять нечего.
rangeflatpickr("#calendar", {
mode: "range",
conjunction: " | "
});
Для диапазона применяется rangeSeparator.
instance.selectedDates
Значение:
[
Date,
Date,
Date
]
Параметр влияет только на отображаемый текст, а не на содержимое массива.
conjunctionНеверно:
flatpickr("#calendar", {
mode: "range",
conjunction: " -> "
});
Правильно:
flatpickr("#calendar", {
mode: "range",
rangeSeparator: " -> "
});
flatpickr("#calendar", {
mode: "multiple",
conjunction: " ||||| "
});
Результат может выглядеть перегруженным:
01.06.2026 ||||| 05.06.2026 ||||| 10.06.2026
flatpickr("#calendar", {
mode: "multiple",
conjunction: ","
});
Результат:
01.06.2026,05.06.2026,10.06.2026
Читаемость заметно снижается.
Для классического отображения списка дат
conjunction: ", "
Для визуального разделения элементов
conjunction: " | "
Для компактных интерфейсов
conjunction: " • "
Для передачи данных в текстовом формате
conjunction: "; "
Для диапазонов дат
Использовать не conjunction, а:
rangeSeparator
Параметр conjunction предназначен исключительно для
формирования строки из нескольких отдельных выбранных дат и не участвует
в механизме отображения диапазонов. При работе с режимом
range изменение разделителя выполняется через
rangeSeparator, тогда как conjunction остаётся
инструментом настройки представления значений в режиме множественного
выбора.