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

  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. 码字不易,还请各路大佬多多三连。

猜你喜欢

转载自blog.csdn.net/Yi2008yi/article/details/123182687
今日推荐