js实现年月加减月份的计算(纯原生实现当前年月n月前和n月后的年月)

26 篇文章 1 订阅
  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. 码字不易,还请各路大佬多多三连。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值