JS 返回前一个月的当天日期

代码参考:

//获取前一个月的日期
//入参格式:YYYY-MM-DD
function getPreMonthDay(date) {
    var arr = date.split('-');
    var year = arr[0];     //当前年
    var month = arr[1];      //当前月
    var day = arr[2];        //当前日
    //验证日期格式为YYYY-MM-DD
    var reg = date.match(/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/);
    if ((!reg) || (month > 12) || (day > 31)) {
        console.log('日期或格式有误!请输入正确的日期格式(年-月-日)');
        return;
    }

    var pre_year = year;     //前一个月的年
    var pre_month = parseInt(month) - 1;      //前一个月的月,以下几行是上月数值特殊处理
    if (pre_month === 0) {
        pre_year = parseInt(pre_year) - 1;
        pre_month = 12;
    }
    var pre_day = parseInt(day);       //前一个月的日,以下几行是特殊处理前一个月总天数
    var pre_month_alldays = new Date(pre_year, pre_month, 0).getDate();    //巧妙处理,返回某个月的总天数
    if (pre_day > pre_month_alldays) {
        pre_day = pre_month_alldays;
    }
    if (pre_month < 10) {   //补0
        pre_month = '0' + pre_month;
    }
    else if (pre_day < 10) {   //补0
        pre_day = '0' + pre_day;
    }

    var pre_month_day = pre_year + '-' + pre_month + '-' + pre_day;
    return pre_month_day;
}

console.log(getPreMonthDay('2020-1-3'));

 

  至此。转载请注明出处,记得扫码打赏支持哦,谢谢!

posted @ 2020-01-18 21:42  失恋的蔷薇  阅读(5969)  评论(0编辑  收藏  举报