我有2个日期选择器,从日期到日期都有。我可以禁用第一个日期选择器的过去日期。但这不适用于第二个。我已经看了第二个的行为。当我单击第二个时,过去的日期被禁用。但是,当我单击第一个然后转到第二个时,它不再起作用。
$("#date1").datepicker({
dateFormat: 'dd-mm-yy',
minDate:0,
onSelect: daysNumber,
onClose: function( selectedDate ) {
var dParts = selectedDate.split('-');
var days = new Date(dParts[2] + '/' +
dParts[1] + '/' +
(+dParts[0] + 30)
);
$( "#date2" ).datepicker( "option", "minDate", days);
}
});
var plusOne = $('#date2').datepicker('getDate')+1;
$("#date2").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: daysNumber,
minDate:plusOne,
});
有人可以帮助我吗?预先感谢!
答案 0 :(得分:0)
最简单的解决方案可能是为第一个日期选择器获取Date
对象值,而不是尝试解析selectedDate
字符串。
在这种情况下,您可以使用.getTime()
来获取纪元,然后只需添加一天中的毫秒数。然后,您从纪元创建一个new Date
,并使用它来设置minDate。
$("#date1").datepicker({
dateFormat: 'dd-mm-yy',
minDate: 0,
onSelect: daysNumber,
onClose: function(selectedDate) {
$("#date2").datepicker("option", "minDate", plusOne());
}
});
var plusOne = function() {
var d1 = $('#date1').datepicker('getDate');
var msInDay = 24 * 60 * 60 * 1000; // hours * mins * secs * ms
if (!d1) return 0;
else return new Date(d1.getTime() + msInDay);
}
$("#date2").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: daysNumber,
minDate: plusOne(),
});