天天看點

JS日期時間加減實作

首先,上代碼

1 var diffDate = function(date, diff) {
 2                 return new Date(
 3                     Date.UTC(
 4                         date.getUTCFullYear(),
 5                         date.getUTCMonth(),
 6                         date.getUTCDate(),
 7                         date.getUTCHours(),
 8                         date.getUTCMinutes(),
 9                         date.getUTCSeconds()
10                     ) +
11                     diff
12                 );
13             };      

其次,上原理

1 将 Date() 對象轉換為UTC标準時間對應的總毫秒數

2 把這個毫秒數加上作內插補點的毫秒數(例如:減一天就是    -24*60*60*1000)

3 把結果毫秒數轉換為 Date()對象

4 傳回結果

5 結束

後記:

  這兩天做項目要用到減時間,減一天,考慮了不能直接減,還要考慮是一号還要減月,一月還要減年,閏年,閏月等等。于是放棄了自我研發,開始百度【捂臉】。結果這一搜代碼都很複雜。全拿字元串操作。

  轉念一想,這麼常用的操作js應該提供了方法呀! 于是開始看文檔  w3school ,上邊把Date() 看了一遍,并沒有。

  但是,我發現,有個Date.UTC 。

  啪!有主意了

  花了一些時間,搞定了。

  是以,沒事看看文檔還是有驚喜的呢!

  大家拿去用,哈哈哈

繼續閱讀