鍍金池/ 問答/HTML5  HTML/ JS 如何計算兩個日期之間的月份,不足一個月按一個月計算?

JS 如何計算兩個日期之間的月份,不足一個月按一個月計算?

例如:2018-8-16和2018-9-16 計算出來應該是一個月,2018-8-16和2018-9-17,計算出來應該是兩個月

function countHours(){
    var startTime = $("#startTime").val();
    var endTime = $("#endTime").val();
    time1 = Date.parse(new Date(startTime));
    time2 = Date.parse(new Date(endTime));
    var time3 =  parseInt(Math.abs(time2 - time1) / 1000 / 60 / 60 / 24 /30) ;
    $("#yearSpan").text( time3 + "個月");
}
回答
編輯回答
空痕

每月固定30天?不考慮28 29 31天的情況么

  function countMonths (start, end) {
    let startTime = new Date(start)
    let endTime = new Date(end)
    return (endTime.getYear() - startTime.getYear()) * 12 + endTime.getMonth() - startTime.getMonth() + (endTime.getDate() > startTime.getDate() ? 1 : 0)
  }
$("#yearSpan").text( countMonths($("#startTime").val(),$("#endTime").val()) + "個月")
2017年10月13日 02:51
編輯回答
妖妖

求得 time3 時向上取整 Math.ceil(),不要直接 parseInt。

2017年11月24日 23:38