示例1 月份选择器获取两个选项值大于12个月
使用 moment 有几种方式可以判断选择的日期范围是否超过 12 个月:
- 使用
diff
方法:
const months = moment(endDate).diff(startDate, 'months');
const is12Months = months === 12;
- 如果需要更精确的判断(考虑具体日期),可以这样写:
const startDate = moment('2023-01-01');
const endDate = moment('2024-01-01');
// 先判断月份差,再判断日期是否对应
const isExactly12Months = endDate.diff(startDate, 'months') === 12 &&
endDate.date() === startDate.date();
- 如果只需要判断是否大于 12 个月:
const isWithin12Months = moment(endDate).diff(startDate, 'months') > 12;
示例2 给表单月份筛选组件默认赋值
可以使用 moment 的 subtract 方法来获取上个月的日期:
initialValues: {
begin_date: [
moment().subtract(1, 'month').startOf('month'), // 上个月第一天
moment().subtract(1, 'month').endOf('month') // 上个月最后一天
]
}
这样就会默认显示上个月的起始日期和结束日期。比如现在是 2024 年 12 月,默认就会显示 2024 年 11 月 1 日到 11 月 30 日。
评论区