2012-06-26 115 views
1

我在尋找最簡潔的解決下面的問題中的JavaScript之間發生的天數:計算二日期

我想確定在JavaScript中的兩個日期之間發生的天數。我不是在尋找天的日期的差異,例如:

日期1:2012年6月26日下午11時05

日期2:2012年6月27日上午12:15

我用的是下面的代碼行:

var days = Math.ceil((date2 - date1)/86400000); 

我的結果是1,我想這是2(算上6月26日和6月27日)

+0

什麼,如果date2的 Sebas

+0

@ Sebas在我的情況下,我會始終假設一個積極的結果。 – dmck

+0

嗯我真的很困惑,基本上你只想要2個數字代表2個給定日期的月份之間的差異?所以區別從1到31,不是嗎? – Sebas

回答

3

刪除日期的時間部分,然後做日期扣除。請參閱this jsfiddle或下面的代碼段。

var d1 = new Date('June 26th 2012 11:05 PM'.replace('th','')); 
var d2 = new Date('June 27th 2012 12:15 AM'.replace('th','')); 

// remove the time portion, set the dates to midnight 
d1.setHours(0,0,0,0); 
d2.setHours(0,0,0,0); 

var diff = Math.ceil((d2 - d1)/86400000) + 1; 

console.log(diff); 

+0

我認爲這是做到這一點的唯一方法,我試圖查看是否有另一種方式使用日期和時間,這樣我就可以避免爲計算創建兩個臨時日期對象。但是,這工作......謝謝。 – dmck

+0

它仍然不正確:) 你應該做'Math.abs()'。交換'd1'和'd2',你會得到0作爲回答:) – Jashwant

+0

btw +1緩存我的錯誤,並提供一個很好的代碼:) – Jashwant