找到两个日期之间的星期日数,如果星期日来自两个日期之间,然后减去星期日
问题描述:
在这个JavaScript中,我能够计算两个日期的差异,但无法找到日期之间的星期日。如果星期日发生在两个日期之间,则从日期中减去星期日并显示总天数。找到两个日期之间的星期日数,如果星期日来自两个日期之间,然后减去星期日
$(function() {
$(".datepicker").datepicker({ dateFormat: 'dd M y'});
$(".datepicker_2").datepicker({ dateFormat: 'dd M y'});
$('.datepicker').change(function() {
var start = $.datepicker.parseDate('dd M y', $(".datepicker").val());
var end = $.datepicker.parseDate('dd M y', $(".datepicker_2").val());
var total = 1;
if (start > end && end != null) {
alert("Begin date must be before End date");
$('.txtnoofdays').val(null);
startdate.focus();
}
if (end != null) {
var days = ((end - start)/1000/60/60/24) + total;
$('.txtnoofdays').val(parseInt(days));
}
});
$('.datepicker_2').change(function() {
var start = $.datepicker.parseDate('dd M y', $(".datepicker").val());
var end = $.datepicker.parseDate('dd M y', $(".datepicker_2").val());
var total = 1;
if (start > end) {
alert("Begin date must be before End date");
$('.txtnoofdays').val(null);
startdate.focus();
}
var days = ((end - start)/1000/60/60/24) + total;
$('.txtnoofdays').val(parseInt(days));
});
});
答
你应该使用JavaScript Date对象,更尤其是getDay()方法。
然后你就可以增加你的start
日起至end
日期和次数,你遇到的周日,是这样的:
var start = $.datepicker.parseDate('dd M y', $(".datepicker").val());
var end = $.datepicker.parseDate('dd M y', $(".datepicker_2").val());
var startDate = new Date(start);
var endDate = new Date(end);
var totalSundays = 0;
for (var i = startDate; i <= endDate;){
if (i.getDay() == 0){
totalSundays++;
}
i.setTime(i.getTime() + 1000*60*60*24);
}
console.log(totalSundays);
诺塔Bene的:
我不明白你的“减法规则”