一、准备

  • 1、JavaScript Date 对象
  • 2、getFullYear():从 Date 对象以四位数字返回年份。
  • 3、getMonth():从 Date 对象返回月份 (0 ~ 11)。

二、注意

  • 1、月份是从0-11,即0表示1月;1表示2月…11表示12月
  • 2、这里特殊处理0(1)月即可,如果当前月是0(1)月,倒退一个月就是去年的12月,年份减1月份设置为12;否则年份就是当前年,月份本来是要减1的,但是由于getMonth()的月份本身就是少了1的,所以月份不用变。
  • 3、月份格式化: 如果月份小于10,则在月份前追加一个0

三、代码

<script>
    function getLastMonth() {
        var year,lastMonth;
        var date = new Date();
        var nowYear = date.getFullYear();   //当前年:四位数字
        var nowMonth = date.getMonth();     //当前月:0-11
        if (nowMonth == 0) {   //如果是0,则说明是1月份,上一个月就是去年的12月
            year = nowYear - 1;
            lastMonth = 12;
        }else { //不是1月份,年份为当前年,月份本来是要减1的,但是由于`getMonth()`的月份本身就是少了1的,所以月份不用变。
            year = nowYear;
            lastMonth = nowMonth;
        }

        lastMonth = lastMonth < 10 ? ('0' + lastMonth) : lastMonth;   //月份格式化:月份小于10则追加个0

        let lastYearMonth = year + '-' + lastMonth;

        return lastYearMonth;
    }

    console.log(getLastMonth());

</script>
  • 或者写简单点
function getLastMonth() {
    var date = new Date();
    var year = date.getFullYear();   //当前年:四位数字
    var month = date.getMonth();     //当前月:0-11

    if (month == 0) {   //如果是0,则说明是1月份,上一个月就是去年的12月
        year -= 1;
        month = 12;
    }

    month = month < 10 ? ('0' + month) : month;   //月份格式化:月份小于10则追加个0

    let lastYearMonth = year + '-' + month;

    return lastYearMonth;
}

console.log(getLastMonth());