Filters.Date

Фильтр по дате: день или диапазон дней в календаре (Calendar).

В value всегда уходит пара границ: { op: "gte" } — начало первого дня и { op: "lt" } — начало дня, следующего за последним. Значения — ISO-строки со смещением пояса (2026-09-07T00:00:00+03:00), границы дня считаются в местном времени пользователя. День на теге читается из самой строки, поэтому при серверном рендере и в другом часовом поясе он тот же, что выбирали. Так сделано потому, что поле хранит момент времени: сравнение eq с датой почти ничего не нашло бы, а lte отрезало бы весь последний день.

Тег показывает день («Срок: 15 сент.») или диапазон («Создано: 1 сент. – 15 сент.»); год появляется, когда он не текущий.

[]

Примеры

Диапазон

mode="range" — диапазон выбирают двумя кликами. После первого он неполный и в value не уходит: условия пишутся только после второго клика.

[]

Границы выбора

min и max закрывают даты раньше и позже — например, будущее для даты создания.

[]

API

PropTypeDefault
field*

Поле фильтра — ключ его условий в value у Filters.Root

string-
label*

Название фильтра на теге

string-
mode

Один день или диапазон. В обоих случаях пишется пара условий { op: "gte" } (начало первого дня) и { op: "lt" } (начало дня, следующего за последним) с ISO-строками: поле хранит момент времени, и сравнение eq / lte с датой потеряло бы весь день. Строка несёт смещение пояса выбравшего (2026-09-07T00:00:00+03:00): день на теге читается из неё самой и одинаков на сервере и в любом браузере

"single" | "range""single"
withTime

Поле хранит момент времени. false — поле хранит день без времени и пояса: условия пишутся днями (2026-09-07), и граница lt — день, следующий за последним

booleantrue
min

Минимальная доступная дата — всё, что раньше, не выбирается

globalThis.Date-
max

Максимальная доступная дата — всё, что позже, не выбирается

globalThis.Date-