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;
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。