2017-03-06 82 views
0

我正在創建一個jQuery UI滑塊,並需要創建日期範圍從2015年1月19日至今天5月6日。JavaScript日期月外

我計算了這些日期之間有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>

我看不到我的代碼的任何錯誤,因爲我已經在其他地方使用它,它正確地發揮作用。

+4

月份是從0開始編號爲 – Pointy

回答

1

在JavaScript月份是從零開始,因此一月份爲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);
<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

你爲什麼要把天花板改成地板? – Ryan

+0

因爲ceil給了我778,因爲endDate包含時間,所以對於我來說未結束的值是'777.4706272569445'。 – j08691