我正在创建一个jQuery UI滑块,需要创建一个从2015年1月19日到今天5月6日的日期范围。
我计算了这些日期之间有777天。
但是当我在JavaScript中执行此操作时,它将在30天后完成。
var startDate = new Date(2015, 1, 19);
var endDate = new Date();
var timeDiff = Math.abs(endDate.getTime() - startDate.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
$("#result").html(diffDays);
$("#diff").html(777 - diffDays);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
JS: <span id="result"></span><br>
Actual: 777<br>
Difference: <span id="diff"></span>
我没有看到我的代码有任何错误,因为我在别处使用它并且它正常运行。
答案 0 :(得分:1)
JavaScript中的月份从零开始,因此1月份为0
,而不是1
var startDate = new Date(2015, 0, 19);
var endDate = new Date();
var timeDiff = Math.abs(endDate.getTime() - startDate.getTime());
var diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));
$("#result").html(diffDays);
$("#diff").html(777 - diffDays);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
JS: <span id="result"></span><br>
Actual: 777<br>
Difference: <span id="diff"></span>
&#13;
另请注意,我将ceil更改为floor