我正在使用jQuery DatePicker确保出发日期在抵达日期后至少1天。我从this question获得了代码。
但是,我刚刚注意到,如果我选择明天(2013年5月31日)作为抵达日期,则出发日期将设定为2019年1月10日!但如果我明天选择到达日期,它似乎工作正常。有关这个问题的任何想法?谢谢你的帮助。
这是JSFiddle,其中包含显示问题的代码。
这是JS本身:
$(".datepicker_arrival").datepicker({
dateFormat: 'dd/mm/yy',
minDate: new Date(),
onSelect: function(dateText, inst) {
if($('.datepicker_departure').val() == '') {
var current_date = $.datepicker.parseDate('dd/mm/yy', dateText);
current_date.setDate(current_date.getDate()+1);
$('.datepicker_departure').datepicker('setDate', current_date);
}
},
onClose: function( selectedDate, test) {
var MyDateString = ('0' + (parseInt(test.selectedDay)+1)).slice(-2) + '/'
+ ('0' + (test.selectedMonth+1)).slice(-2) + '/'
+ test.selectedYear;
$( ".datepicker_departure" ).datepicker( "option", "minDate", MyDateString);
}
});
$(".datepicker_departure").datepicker({
dateFormat: 'dd/mm/yy',
minDate: new Date(),
onClose: function( selectedDate ) {
$( ".datepicker_arrival" ).datepicker( "option", "maxDate", selectedDate );
}
});
答案 0 :(得分:1)
好的总结一下评论中的解决方案(由我提供,我不仅仅是在回答)。
错误是由这段代码引起的:
var MyDateString = ('0' + (parseInt(test.selectedDay)+1)).slice(-2) + '/'
+ ('0' + (test.selectedMonth+1)).slice(-2) + '/'
+ test.selectedYear;
未正确添加日期。在添加日期时,不考虑月份,因此任何月末都会导致创建这样的日期:
32/05/2013
当然,这个月没有第32个。
因此,可以在此处找到建议的修复代码: