Диапазоны дат в интерфейсах часто используются для
выбора периода времени, фильтрации данных или отображения отчетов. В
библиотеке Carbon Components Svelte работа с
диапазонами реализована через компонент DatePicker с
поддержкой диапазонов.
Для создания диапазона дат необходимо использовать проп
range:
<script>
import { DatePicker } from 'carbon-components-svelte';
let selectedRange = { start: '', end: '' };
</script>
<DatePicker
range={true}
bind:value={selectedRange}
id="example-date-range"
dateFormat="m/d/Y"
placeholder="Выберите диапазон дат"
/>
selectedRange имеет поля
start и end."m/d/Y",
"Y-m-d" и др.После выбора пользователем дат переменная selectedRange
имеет следующий вид:
{
start: '2026-03-01',
end: '2026-03-15'
}
Это позволяет напрямую использовать данные для фильтрации массивов, запросов к серверу или других вычислений.
Можно задать минимальную и максимальную даты с помощью свойств
minDate и maxDate:
<DatePicker
range={true}
bind:value={selectedRange}
minDate="2026-01-01"
maxDate="2026-12-31"
/>
Если пользователь попытается выбрать дату вне этих границ, компонент автоматически заблокирует выбор.
Помимо стандартного формата, можно настроить отображение даты с
помощью пропа dateFormat:
<DatePicker
range={true}
bind:value={selectedRange}
dateFormat="d.m.Y"
/>
Это особенно полезно при локализации интерфейса, например, для России
чаще используется формат дд.мм.гггг.
Компонент DatePicker поддерживает события
change и blur, что позволяет реагировать на
выбор диапазона:
<DatePicker
range={true}
bind:value={selectedRange}
on:change={(event) => {
console.log('Выбран диапазон:', event.detail);
}}
/>
start и end.Диапазон дат наследует все стили Carbon и может быть встроен в формы, карточки и модальные окна без дополнительных настроек. Важно правильно использовать классы Carbon для выравнивания и адаптивности:
<div class="bx--form-item">
<label for="example-date-range" class="bx--label">Период отчета</label>
<DatePicker
id="example-date-range"
range={true}
bind:value={selectedRange}
/>
</div>
Можно задавать начальное значение диапазона при инициализации:
let selectedRange = {
start: '2026-03-01',
end: '2026-03-10'
};
Поле автоматически отобразит выбранные даты при рендере компонента.
Иногда необходимо программно менять диапазон в зависимости от действий пользователя:
function setLastWeek() {
const today = new Date();
const lastWeek = new Date();
lastWeek.setDate(today.getDate() - 7);
selectedRange = {
start: lastWeek.toISOString().split('T')[0],
end: today.toISOString().split('T')[0]
};
}
Это удобно для кнопок типа “Последняя неделя”, “Последний месяц” и аналогичных фильтров.
Диапазон дат часто комбинируется с таблицами, графиками и фильтрами:
<DataTable {rows} {headers} {selectedRange} />
Фильтрация данных на основе диапазона производится напрямую через
объект selectedRange, что обеспечивает чистую и понятную
интеграцию без дополнительных промежуточных переменных.
Диапазоны дат в Carbon Components Svelte обеспечивают удобное и гибкое управление периодами времени, поддерживают привязку к переменным, ограничения по дате, события изменения и интеграцию с остальными компонентами Carbon. Их можно полностью адаптировать под конкретные задачи интерфейса, от простых форм до сложных аналитических панелей.