时间助手
用于生成时间值、在 12/24 小时格式之间转换、吸附到步长以及解析时间配置的函数。
import { generateHours, generateHours12, generateMinutes, generateSeconds, adjustMinuteToStep, adjustSecondToStep, to12Hour, to24Hour, resolveTimeConfig,} from "react-date-range-picker-headless";generateHours
生成一个 24 小时制的值数组。
| 签名 | generateHours(): number[] |
| 返回值 | [0, 1, 2, ..., 23] |
generateHours12
生成一个 12 小时制的值数组。
| 签名 | generateHours12(): number[] |
| 返回值 | [1, 2, 3, ..., 12] |
generateMinutes
根据步长筛选并生成分钟数组。
| 签名 | generateMinutes(minuteStep?: MinuteStep): number[] |
| 默认值 | 5 |
generateMinutes(); // [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]generateMinutes(15); // [0, 15, 30, 45]generateMinutes(1); // [0, 1, 2, ..., 59]generateSeconds
根据步长筛选并生成秒数数组。
| 签名 | generateSeconds(secondStep?: SecondStep): number[] |
| 默认值 | 1 |
generateSeconds(); // [0, 1, 2, ..., 59]generateSeconds(15); // [0, 15, 30, 45]adjustMinuteToStep
将分钟值吸附到最近的有效步长(向下取整)。
| 签名 | adjustMinuteToStep(minute: number, minuteStep: MinuteStep): number |
adjustMinuteToStep(7, 5); // 5adjustMinuteToStep(13, 10); // 10adjustMinuteToStep(29, 15); // 15adjustSecondToStep
将秒数值吸附到最近的有效步长(向下取整)。
| 签名 | adjustSecondToStep(second: number, secondStep: SecondStep): number |
adjustSecondToStep(7, 5); // 5adjustSecondToStep(14, 10); // 10to12Hour
将 24 小时制的值转换为带 AM/PM 的 12 小时格式。
| 签名 | to12Hour(hour24: number): { hour: number; period: TimePeriod } |
to12Hour(0); // { hour: 12, period: "AM" }to12Hour(12); // { hour: 12, period: "PM" }to12Hour(13); // { hour: 1, period: "PM" }to12Hour(23); // { hour: 11, period: "PM" }to24Hour
将带 AM/PM 的 12 小时制的值转换为 24 小时格式。
| 签名 | to24Hour(hour12: number, period: TimePeriod): number |
to24Hour(12, "AM"); // 0to24Hour(12, "PM"); // 12to24Hour(1, "PM"); // 13to24Hour(11, "PM"); // 23resolveTimeConfig
使用默认值解析部分的 TimeConfig。
| 签名 | resolveTimeConfig(config?: TimeConfig): Required<TimeConfig> |
| 字段 | 默认值 |
|---|---|
precision | "minute" |
hourFormat | "24" |
minuteStep | 5 |
secondStep | 1 |
itemHeight | 32 |
resolveTimeConfig();// { precision: "minute", hourFormat: "24", minuteStep: 5, secondStep: 1, itemHeight: 32 }
resolveTimeConfig({ precision: "second", hourFormat: "12" });// { precision: "second", hourFormat: "12", minuteStep: 5, secondStep: 1, itemHeight: 32 }