如何使用interval intitial和final DatePicker计算总天数。抱歉我的英文不好
$(".datepicker").datepicker({
minDate: 0,
numberOfMonths: [3,1],
beforeShowDay: function(date) {
var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
},
onSelect: function(dateText, inst) {
var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
var selectedDate = $.datepicker.parseDate($.datepicker._defaults.dateFormat, dateText);
if (!date1 || date2) {
$("#input1").val(dateText);
$("#input2").val("");
$(this).datepicker();
} else if( selectedDate < date1 ) {
$("#input2").val( $("#input1").val() );
$("#input1").val( dateText );
$(this).datepicker();
} else {
$("#input2").val(dateText);
$(this).datepicker();
}
}
});
答案 0 :(得分:1)
计算日期差异的一种方法如下:
var t1 = Date.parse($("#input1").val()); // date1.getTime();
var t2 = Date.parse($("#input2").val()); // date2.getTime();
var difference = Math.abs(t2 - t1) / 86400000;
$("#diff").val(difference);
(我通过将代码作为onSelect: function(dateText, inst)
的最后几行进行测试。)
86400000
是24h x 60min x 60s x 1000ms
的计算(一天中的毫秒数)
答案 1 :(得分:1)
当您处理日期时,您应该查看moment.js
。
您可以尝试这样的事情:
moment($("#input1").val()).diff(moment(selectedDate), "days");
var d1 = new Date(date1);
var d2 = new Date(selectedDate);
var secInDays = 24 * 60 * 60 * 1000;
d1.setHours(0, 0, 0, 0);
d2.setHours(0, 0, 0, 0);
console.log((+d2 - +d1) / secInDays)