Javascript:计算两个日期之间的月数

时间:2018-12-21 13:01:54

标签: javascript date

我有一个脚本,我想计算两个日期之间的月数。这就是我尝试过的

    var dateTo = document.getElementById("date1").value;
    var d2 = dateTo.split("-");
    var date1 =  new Date(d2[2], parseInt(d2[1]) - 1, d2[0]);
    var date2 = new Date(2019, 12, 31);
    var year1 = date1.getFullYear();
    var year2 = date2.getFullYear();
    var month1 = date1.getMonth();
    var month2 = date2.getMonth();
    if (month1 === 0) { 
        month1++;
        month2++;
    }
    var numberOfMonths = (month2 - month1);

这个想法是,用户从输入日历中选择一个日期,并计算从所选日期到当年年底之间剩余的月数。

如果我写下日期 2019-05-13 ,我得到的结果将返回 -4 个月,这是错误的结果,我不确定我在做错什么。

1 个答案:

答案 0 :(得分:1)

  

这个想法是,用户从输入日历中选择一个日期,并计算从所选日期到当年年底之间的剩余月份数。

您可以通过更简单的方式实现这一目标:

$('#datepicker').datepicker({
  onSelect: function() { 
    var date = $(this).datepicker('getDate'); // get the date chosen
    var month = date.getMonth(); // get the month
    var monthsLeft = 11 - month; // get the differences, months are 0 based
    console.log('Month Left:', monthsLeft);
  }
});
<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<p>Date: <input type="text" id="datepicker"></p>