如何在JavaScript日期选择器中于年末自动递增年份
解决方案
可以通过动态计算年份范围的结束值来实现需求:先获取当前系统日期,判断是否为2022年12月31日,根据结果设置对应的yearRange参数,同时保持maxDate为当前日期。
修改后的代码如下:
// 获取当前日期 const today = new Date(); // 定义目标日期:2022年12月31日(注意月份从0开始计数,12月对应11) const targetDate = new Date(2022, 11, 31); // 精确判断当前日期是否是目标日期 const isTargetDay = today.getFullYear() === targetDate.getFullYear() && today.getMonth() === targetDate.getMonth() && today.getDate() === targetDate.getDate(); // 动态确定年份范围的结束值 const endYear = isTargetDay ? 2023 : 2022; $('#contractDate').datepicker({ changeMonth: true, changeYear: true, maxDate: today, yearRange: `1900:${endYear}` });
说明
- 仅在当前日期恰好为2022年12月31日时,将年份范围的结束值自动调整为2023
- 其余时间年份范围保持
1900:2022,且maxDate始终绑定为当前日期,完全匹配原始需求
内容的提问来源于stack exchange,提问作者vinod kumar
相关产品推荐
相关产品推荐

