计算某日期N个月后

// 计算n个月后  date格式:2020-11-12 若输入的日期N个月后有那一天则,直接返回否则返回N个月后的第一天 如:输入(2021-01-12,1),返回 2021-02-12 ;若输入(2021-01-31,1) 则返回 2021-02-28  
    addmulMonth(date,n){  
        var startDate = date.split("-");
        var y = parseInt(startDate[0]);
        var m = parseInt(startDate[1]); 
        var d = parseInt(startDate[2]);
        y = y + parseInt(n/12)
        m = (m + parseInt(n%12)) > 12 ? parseInt(n%12)-(12-m) : m + parseInt(n%12)
        y = (m + parseInt(n%12)) > 12 ? y+1 : y
        // 计算某月的最大天数
        var maxDay = new Date(y,m,0).getDate()
        d = d > Number(maxDay) ? Number(maxDay) : d
        return y + "-" + this.changeNum(m)  + "-" + this.changeNum(d);
    },
    // 转换数字
    changeNum(num) {
        if(num >= 10) {
            return num
        }else {
            return '0'+num
        }
    },

 

posted @ 2021-05-26 11:39  pyx204  阅读(109)  评论(0)    收藏  举报