js计算年月加减月份

  • time 的格式为"yyyy-MM"
  • num 的格式为n,n为正数表示加月份,为负数表示减月份
export function calcMonths(time, num) {
	let arr = time.split("-"); // 将 "yyyy-MM" 日期分解为 ["2021","09"]
	let year = parseInt(arr[0], 10);
	let month = parseInt(arr[1], 10);
	month = month + num;
	if (month > 12) {
		let newYear = parseInt((month - 1) / 12, 10);
		month = month % 12 == 0 ? 12 : month % 12;
		year += newYear;
	} else if (month <= 0) {
		month = Math.abs(month);
		let newYear = parseInt((month + 12) / 12, 10);
		let n = month % 12;
		if (n == 0) {
			year -= newYear;
			month = 12;
		} else {
			year -= newYear;
			month = Math.abs(12 - n);
		}
	}
	month = month < 10 ? "0" + month : month;
	return year + "-" + month;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值