DateRangePreset

useDateRangePickeruseDateRangeTimePicker 定义一个预设的日期范围。

import type { DateRangePreset } from "react-date-range-picker-headless";

字段

字段类型描述
labelstring预设按钮的显示标签。
value{ start: Date; end: Date } | (() => { start: Date; end: Date })静态范围对象或返回一个范围的工厂函数。

TypeScript 定义

interface DateRangePreset {
label: string;
value: { start: Date; end: Date } | (() => { start: Date; end: Date });
}

用法

静态预设使用固定的 Date 对象。工厂预设动态计算范围(对于像“最近 7 天”这样的相对范围很有用)。

const presets: DateRangePreset[] = [
// Static preset
{
label: "Q1 2026",
value: { start: new Date(2026, 0, 1), end: new Date(2026, 2, 31) },
},
// Factory preset (computed on click)
{
label: "Last 7 days",
value: () => {
const end = new Date();
const start = new Date();
start.setDate(start.getDate() - 6);
return { start, end };
},
},
{
label: "This month",
value: () => {
const now = new Date();
const start = new Date(now.getFullYear(), now.getMonth(), 1);
const end = new Date(now.getFullYear(), now.getMonth() + 1, 0);
return { start, end };
},
},
];