今天在测试Datepicker时,发现了如下情况,原代码是:
[js]
$(“#start-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate: “Now”,
onSelect:function(dateText,inst){
$(“#end-date”).datepicker(“option”,”minDate”,new Date(dateText);
}
});
[/js]
在IE11、Chrome、FF下,new Date(dateText)这种方式都是可以生成 Wed Mar 02 2016 08:00:00 GMT+0800 这样的标准时间。而到了IE8下却不能生成,出现了NaN。
原来是因为IE8不像IE11和Chrome及FF那样聪明,new Date()这个方法如果带参数初始化时,应该使用像new Date(yyyy,mm,dd)这样的标准格式才能生成日期;
所以代码改成了这样:
[js]
$(“#start-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate:”Now”,
onSelect:function(dateText,inst){
$(“#end-date”).datepicker(“option”,”minDate”,new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
[/js]
也会有同学有这样的需求,开始日期不能大于结束日期,于是就可以这样写了:
[js]
$(“#start-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate:”Now”,
onSelect:function(dateText,inst){
$(“#end-date”).datepicker(“option”,”minDate”,new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
$(“#end-date”).datepicker({
changeMonth: true,
changeYear: true,
maxDate:”Now”,
onSelect:function(dateText,inst){
$(“#start-date”).datepicker(“option”,”maxDate”,new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});
[/js]