js獲取前幾個月日期或者后幾個月日期

前言

最近項目中有個需求,獲取前幾個月日期和后幾個月日期,并且都是從一號開始算,在這里總結一下:

獲取前幾個月日期:

GetPreMonthDay: function (date, monthNum) {
        var dateArr = date.split('/');
        var year = dateArr[0]; //獲取當前日期的年份
        var month = dateArr[1]; //獲取當前日期的月份
        var day = dateArr[2]; //獲取當前日期的日
        var days = new Date(year, month, 0);
        days = days.getDate(); //獲取當前日期中月的天數
        var year2 = year;
        var month2 = parseInt(month) - monthNum;
        if (month2 <= 0) {
            year2 =parseInt(year2) -parseInt(month2 / 12 == 0 ? 1 : Math.abs(parseInt(month2 / 12)) + 1)
            month2 = 12 - (Math.abs(month2) % 12);
        }
        var day2 = day;
        var days2 = new Date(year2, month2, 1);
        days2 = days2.getDate();
        if (day2 > days2) {
            day2 = days2;
        }
        if (month2 < 10) {
            month2 = '0' + month2;
        }
        var t2 = year2 + '/' + month2 + '/' + days2;
        return t2;
    },

獲取后幾個月日期:

getNextMonthDay: function (date, monthNum) {
        var dateArr = date.split('/');
        var year = dateArr[0]; //獲取當前日期的年份
        var month = dateArr[1]; //獲取當前日期的月份
        var day = dateArr[2]; //獲取當前日期的日
        var days = new Date(year, month, 0);
        days = days.getDate(); //獲取當前日期中的月的天數
        var year2 = year;
        var month2 = parseInt(month) + parseInt(monthNum);
        if (month2 > 12) {
            year2 = parseInt(year2) + parseInt((parseInt(month2) / 12 == 0 ? 1 : parseInt(month2) / 12));
            month2 = parseInt(month2) % 12;
        }
        var days2 = new Date(year2, month2, 0);
        days2 = days2.getDate();
        /*計算當前幾號*/
        //var day2 = day;
        // console.log(days2)
        // if (day2 > days2) {
        //     day2 = days2;
        // }
        if (month2 < 10) {
            month2 = '0' + month2;
        }
        var t2 = year2 + '/' + month2 + '/' + days2;
        return t2;
    },
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。