中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

JavaScript計算2個日期之間相差天數(shù)

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

思路無非是先獲取2個時間點的時間戳,通過時間戳的差值進行時間計算來獲取相差的天數(shù),網(wǎng)上幾乎都是這樣的寫法,如下:


var diff = parseInt(Math.abs(date1 - date2) / 1000 / 60 / 60 /24) //把相差的毫秒數(shù)轉(zhuǎn)換為天數(shù)  

date1和date2分別是2個日期的時間戳,因為加上了絕對值,所以不分先后。


但是parseInt一般都是將字符串轉(zhuǎn)化為Int類型,而Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24計算出的結(jié)果很明顯是浮點類型數(shù)據(jù),雖然從實際效果上確實沒什么區(qū)別,不過我還是偏向于這樣寫:


Math.floor(Math.abs(k1 - k2) / 1000 / 60 / 60 /24)
兩種方法不同,但是結(jié)果一樣,都是向下去整,但是這樣的方法只適合用來獲取絕對的時間差,而很多情況下這與我們所期望得到的結(jié)果不一致,以我現(xiàn)在做的項目為例:


我現(xiàn)在知道起始時間是2015/5/8 15:31:57,結(jié)束時間是2015/5/28 10:34:46,我想知道這2個時間點之間相差多少天,這個時候用上面的方法就不妥了,上面的方法算出來是19,而實際上應該是20,這是一個四舍五入的問題,所有我們應該稍加修改一下方法,使計算出的結(jié)果四舍五入成我們想要的整數(shù)天數(shù),如下:


Math.floor(Math.abs(k1 - k2) / 1000 / 60 / 60 /24 + 0.5);

這樣計算出的結(jié)果才是我想要的結(jié)果。


至于js轉(zhuǎn)換成時間戳的方法,如果是Date對象,則直接調(diào)用getTime()方法就可以獲得毫秒時間戳。如果是時間字符串,則用正則表達式匹配將字符串替換成js所識別的標準格式,new一個Date對象即可。


標簽:

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:webview上傳圖片

下一篇: Python搜索文件代碼