/** 日期、时间选择器快捷选项,常搭配 [DatePicker](https://element-plus.org/zh-CN/component/date-picker.html) 和 [DateTimePicker](https://element-plus.org/zh-CN/component/datetime-picker.html) 的`shortcuts`属性使用 */ export const getPickerShortcuts = (): Array<{ text: string; value: Date | Function; }> => { return [ { text: "今天", value: () => { const today = new Date(); today.setHours(0, 0, 0, 0); const todayEnd = new Date(); todayEnd.setHours(23, 59, 59, 999); return [today, todayEnd]; } }, { text: "昨天", value: () => { const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); yesterday.setHours(0, 0, 0, 0); const yesterdayEnd = new Date(); yesterdayEnd.setDate(yesterdayEnd.getDate() - 1); yesterdayEnd.setHours(23, 59, 59, 999); return [yesterday, yesterdayEnd]; } }, { text: "前天", value: () => { const beforeYesterday = new Date(); beforeYesterday.setDate(beforeYesterday.getDate() - 2); beforeYesterday.setHours(0, 0, 0, 0); const beforeYesterdayEnd = new Date(); beforeYesterdayEnd.setDate(beforeYesterdayEnd.getDate() - 2); beforeYesterdayEnd.setHours(23, 59, 59, 999); return [beforeYesterday, beforeYesterdayEnd]; } }, { text: "本周", value: () => { const today = new Date(); const startOfWeek = new Date( today.getFullYear(), today.getMonth(), today.getDate() - today.getDay() + (today.getDay() === 0 ? -6 : 1) ); startOfWeek.setHours(0, 0, 0, 0); const endOfWeek = new Date( startOfWeek.getTime() + 6 * 24 * 60 * 60 * 1000 + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000 + 999 ); return [startOfWeek, endOfWeek]; } }, { text: "上周", value: () => { const today = new Date(); const startOfLastWeek = new Date( today.getFullYear(), today.getMonth(), today.getDate() - today.getDay() - 7 + (today.getDay() === 0 ? -6 : 1) ); startOfLastWeek.setHours(0, 0, 0, 0); const endOfLastWeek = new Date( startOfLastWeek.getTime() + 6 * 24 * 60 * 60 * 1000 + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000 + 999 ); return [startOfLastWeek, endOfLastWeek]; } }, { text: "本月", value: () => { const today = new Date(); const startOfMonth = new Date(today.getFullYear(), today.getMonth(), 1); startOfMonth.setHours(0, 0, 0, 0); const endOfMonth = new Date( today.getFullYear(), today.getMonth() + 1, 0 ); endOfMonth.setHours(23, 59, 59, 999); return [startOfMonth, endOfMonth]; } }, { text: "上个月", value: () => { const today = new Date(); const startOfLastMonth = new Date( today.getFullYear(), today.getMonth() - 1, 1 ); startOfLastMonth.setHours(0, 0, 0, 0); const endOfLastMonth = new Date( today.getFullYear(), today.getMonth(), 0 ); endOfLastMonth.setHours(23, 59, 59, 999); return [startOfLastMonth, endOfLastMonth]; } }, { text: "本年", value: () => { const today = new Date(); const startOfYear = new Date(today.getFullYear(), 0, 1); startOfYear.setHours(0, 0, 0, 0); const endOfYear = new Date(today.getFullYear(), 11, 31); endOfYear.setHours(23, 59, 59, 999); return [startOfYear, endOfYear]; } } ]; };