首先,上代碼
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 。
啪!有主意了
花了一些時間,搞定了。
是以,沒事看看文檔還是有驚喜的呢!
大家拿去用,哈哈哈