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 + "个月");
}
阅读 4.6k
2 个回答

每月固定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()) + "个月")

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题