如何获得一个月内的天数(不包括周末)

时间:2016-09-02 15:34:06

标签: javascript

我写了一个功能,给我一个月的所有日子,不包括周末。一切正常,但是当我想得到12月的日期时,Date对象返回下周的01月1日,该函数返回一个空数组。

请帮助。

function getDaysInMonth(month, year) {
    var date = new Date(year, month-1, 1);
    var days = [];
    while (date.getMonth() === month) {

        // Exclude weekends
        var tmpDate = new Date(date);            
        var weekDay = tmpDate.getDay(); // week day
        var day = tmpDate.getDate(); // day

        if (weekDay !== 1 && weekDay !== 2) {
            days.push(day);
        }

        date.setDate(date.getDate() + 1);
    }

    return days;
}  

alert(getDaysInMonth(month, year))

1 个答案:

答案 0 :(得分:5)

创建日期时,使用month = 0到11

当你获得月份时也会这样 - 它也会返回0到11

我很惊讶你说

  

每件事情都很好

它实际上从未在任何月份起作用 - 总是会返回一个空数组

function getDaysInMonth(month, year) {
    month--; // lets fix the month once, here and be done with it
    var date = new Date(year, month, 1);
    var days = [];
    while (date.getMonth() === month) {

        // Exclude weekends
        var tmpDate = new Date(date);            
        var weekDay = tmpDate.getDay(); // week day
        var day = tmpDate.getDate(); // day

        if (weekDay%6) { // exclude 0=Sunday and 6=Saturday
            days.push(day);
        }

        date.setDate(date.getDate() + 1);
    }

    return days;
}  

alert(getDaysInMonth(month, year))