我使用下面的方法獲取兩個日期之間的日期差異。JavaScript中的日期差異計算問題
var MS_PER_DAY = 1000 * 60 * 60 * 24; function dateDiffInDays(dateFrom, dateTo) { var utc1 = Date.UTC(dateFrom.getFullYear(), dateFrom.getMonth(), dateFrom.getDate()); var utc2 = Date.UTC(dateTo.getFullYear(), dateTo.getMonth(), dateTo.getDate()); return Math.floor((utc2 - utc1)/MS_PER_DAY); }
如果我給作爲01-01-2013
和01-02-2013
它返回28
這是錯誤的日期,預計 答案是31
。但對於我測試過的所有其他情況,它給了我正確的答案。
我該怎麼做才能正確工作?
DownVoters:請評論原因。
可能是您的本地設置或您實例化日期的方式(請注意,getMonth返回基於零的索引)您應該使用類似http://momentjs.com/的庫來處理日期操作。 – jbl
@jbl那麼這是否意味着我無法正確使用這段代碼? – Maximin
當然可以。我猜這個部分是有效的,但是你的輸入不是你認爲的那樣。注意你如何建立你的dateFrom和dateTo。他們不是你的想法。並做更多的測試。無論如何,使用圖書館將爲您節省大量時間。 – jbl