使用javascript检查周末是否存在于日期范围内

Bac*_*ice 6 javascript date

想知道是否有人有一个解决方案来检查两个日期及其范围之间是否存在周末.

var date1 = 'Apr 10, 2014';
var date2 = 'Apr 14, 2014';


funck isWeekend(date1,date2){
   //do function

    return isWeekend;
}
Run Code Online (Sandbox Code Playgroud)

先感谢您.

编辑添加到目前为止我得到的东西.检查两天.

function isWeekend(date1,date2){
   //do function
    if(date1.getDay() == 6 || date1.getDay() == 0){
        return isWeekend;
        console.log("weekend")
    } 
        if(date2.getDay() == 6 || date2.getDay() == 0){
        return isWeekend;
        console.log("weekend")
    } 
}
Run Code Online (Sandbox Code Playgroud)

Abh*_*lks 8

最简单的方法是迭代日期并返回,如果有任何一天6(星期六)或0(星期日)

演示:http://jsfiddle.net/abhitalks/xtD5V/1/

代码:

function isWeekend(date1, date2) {
    var d1 = new Date(date1),
        d2 = new Date(date2), 
        isWeekend = false;

    while (d1 < d2) {
        var day = d1.getDay();
        isWeekend = (day === 6) || (day === 0); 
        if (isWeekend) { return true; } // return immediately if weekend found
        d1.setDate(d1.getDate() + 1);
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

如果要检查两个日期之间是否存在整个周末,请稍微更改代码:

演示2:http://jsfiddle.net/abhitalks/xtD5V/2/

代码:

function isFullWeekend(date1, date2) {
    var d1 = new Date(date1),
        d2 = new Date(date2); 

    while (d1 < d2) {
        var day = d1.getDay();
        if ((day === 6) || (day === 0)) { 
            var nextDate = d1; // if one weekend is found, check the next date
            nextDate.setDate(d1.getDate() + 1); // set the next date
            var nextDay = nextDate.getDay(); // get the next day
            if ((nextDay === 6) || (nextDay === 0)) {
                return true; // if next day is also a weekend, return true
            }
        }
        d1.setDate(d1.getDate() + 1);
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)