Bootstrap

JS 计算几个月后的日期 与 两个日期相差几个月

1.获取n个月后的日期(指定日期)

/**
 * @description: 获取n个月后的日期
 * @param {String} dtstr 日期
 * @param {String} n 几个月
 * @return: 日期
 */

addmulMonth(dtstr, n){        
  let s = dtstr.split("-");
  let yy = parseInt(s[0]);
  let mm = parseInt(s[1]); 
  let dd = parseInt(s[2]); 
  var num= mm + parseInt(n);

  if(num/12 > 1){
    yy += Math.floor(num/12) 
    mm = num % 12
  }else{
    mm += parseInt(n);
  }

  //获取当前日期中月的天数
  let newDate = new Date(yy,mm,0)
  //这里传入的0代表获取上一个月的最后一天;如果传1,则获得当月的第一天
  let days = newDate.getDate()
  //天数大于当前月
  if(dd > days){
    dd = days
  }

  return yy + "-" + mm  + "-" + dd
}

this.addmulMonth('2020-1-31',1)
//2020-2-31

2.获取n个月后的日期(当前日期)

/**
 * @description: 获取n个月后的日期
 * @param {String} n 几个月
 * @return: 日期
 */

a
;