找出两个日期之间的星期日数,如果星期日介于两个日期之间,那么减去星期日

时间:2014-10-29 12:03:29

标签: javascript datepicker

在这个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));

    });

});

1 个答案:

答案 0 :(得分:4)

您应该使用Javascript Date Object,尤其是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);

Nota Bene:

我不明白你的&#34;减法规则&#34;