簡體   English   中英

使用JavaScript獲取兩個日期之間的天數

[英]Get the number of days between 2 dates using Javascript

實際上,當日期在同一個月時,代碼可以正常工作,但是當日期在不同的月份(如30/09/2015和01/10/2015)時,我遇到了問題,天數結果是2。爛英文)

這是示例代碼:

var dtElem1 = '30/09/2015';
var dtElem2 = '01/10/2015';
var resultElem = frm.elements['numberofdays'];
var oneDay = 24*60*60*1000;

var x = dtElem1.value;
var y = dtElem2.value;
var arr1 = x.split('/');
var arr2 = y.split('/');

var dt1 = new Date();
dt1.setFullYear(arr1[2], arr1[1], arr1[0]);
var dt2 = new Date(); 
dt2.setFullYear(arr2[2], arr2[1], arr2[0]);

resultElem.value = Math.round(Math.abs((dt1.getTime() -
  dt2.getTime())/(oneDay)));

Date方法從零開始計算月份,因此在設置日期時應從月份數中減去1。 這說明了您的錯誤,因為您最終從11月1日開始減去10月 30日,而10月有31天。

這將得到預期的結果:

dt1.setFullYear(arr1[2], arr1[1] - 1, arr1[0])
dt2.setFullYear(arr2[2], arr2[1] - 1, arr2[0])

請注意,您無需創建日期然后進行設置。 您可以將相同的參數直接傳遞給構造函數:

dt1 = new Date(arr1[2], arr1[1] - 1, arr1[0])
dt2 = new Date(arr2[2], arr2[1] - 1, arr2[0])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM