1.话不多说,当遇到需求:让你计算某一年月的n月之前或者n月之后(也就是yyyy-mm + n)时,不用插件,你是否一头雾水,无从下手。基于自身开发总结,为你提供一种实现该需求的解决方法。
/*
计算年月加减月份
originalYtd为String,格式为"yyyy-MM"
monthNum为Number,格式为n,n为正数表示加月份,为负数表示减月份
*/
function calcMonths(originalYtd, monthNum) {
let arr = originalYtd.split('-')
let year = parseInt(arr[0])
let month = parseInt(arr[1])
month = month + monthNum
if (month > 12) {
let yearNum = parseInt((month - 1) / 12)
month = month % 12 == 0 ? 12 : month % 12
year += yearNum
} else if (month <= 0) {
month = Math.abs(month)
let yearNum = parseInt((month + 12) / 12)
let n = month % 12
if (n == 0) {
year -= yearNum
month = 12
} else {
year -= yearNum
month = Math.abs(12 - n)
}
}
month = month < 10 ? "0" + month : month
return year + "-" + month
}

2.当然,除了以上纯原生js实现外,moment.js插件官网传送门是实际开发中使用频率和效率较高的一种处理方式。之前的文章也教学了其在vue中的使用和总结了近二十余种常见的日期处理。 一分钟让你彻底学会日期时间插件moment.js的使用和常用格式总结
3.以上就是本文内容,码字不易,还请大佬们多多三连指教。