如何为jQuery DatePicker选中的日期增加1天?
解决日期加1天的问题
- 问题根源:
e.date是原生JavaScript Date对象,直接用+1或+1d都是错误语法,无法正确修改日期。 - 正确做法:复制原日期对象(避免修改原始数据),通过
setDate()方法给日期加1天。
修改后的代码如下:
$(function() { var myDate = new Date(); $('#leaveEndDateFunc').datepicker({ title: 'Leave End Date', format: 'dd/mm/yyyy', todayHighlight: true, autoclose: true, clearBtn: true, endDate: "+3M", }).on("changeDate", function(e) { // 复制原日期对象,避免修改原始数据 var returnDate = new Date(e.date); // 给日期加1天,自动处理月份/年份进位 returnDate.setDate(returnDate.getDate() + 1); // 设置返回日期的起始日期 $('#dateOfReturn').datepicker('setStartDate', returnDate); }); }); $(function() { var myDate = new Date(); $('#dateOfReturn').datepicker({ title: 'Date Of Return', format: 'dd/mm/yyyy', todayHighlight: false, autoclose: true, clearBtn: true, }); });
- 关键说明:
- 必须创建原日期的副本,因为Date是引用类型,直接修改会影响原始数据。
getDate()获取当前日期的日份(1-31),加1后用setDate()设置,日期对象会自动处理跨月/跨年的情况(比如1月31日加1天会自动转为2月1日)。
内容的提问来源于stack exchange,提问作者codeTester-
相关产品推荐
相关产品推荐

