Difference in Months between two dates in JavaScript

后端 未结 26 2848
南方客
南方客 2020-11-22 17:06

How would I work out the difference for two Date() objects in JavaScript, while only return the number of months in the difference?

Any help would be great :)

26条回答
  •  旧时难觅i
    2020-11-22 17:45

    function monthDiff(date1, date2, countDays) {
    
      countDays = (typeof countDays !== 'undefined') ?  countDays : false;
    
      if (!date1 || !date2) {
        return 0;
      }
    
      let bigDate = date1;
      let smallDate = date2;
    
      if (date1 < date2) {
        bigDate = date2;
        smallDate = date1;
      }
    
      let monthsCount = (bigDate.getFullYear() - smallDate.getFullYear()) * 12 + (bigDate.getMonth() - smallDate.getMonth());
    
      if (countDays && bigDate.getDate() < smallDate.getDate()) {
        --monthsCount;
      }
    
      return monthsCount;
    }
    

提交回复
热议问题