2012-02-07 34 views
0

Date對象的時間成分比較的最佳方式,我知道這是可以這樣做:date.getTime比較什麼是在JavaScript

  1. 比較小時和分鐘等。
  2. ()% 86400000
  3. 比較date.toLocaleTimeString()

是有一個直接的方式?

+0

如果週一下午1點到週二下午1點產量比較表明時間相等或24小時間隔的結果? – gilly3 2012-02-07 06:37:29

+0

等於,我的意思是日期部分沒有關係,只是時間事宜 – Daniel 2012-02-07 06:40:49

+0

什麼是小數秒? 23:11:42.223和23:11:42.489一樣嗎? – 2012-02-07 06:48:11

回答

1

如果你想比較只是時間組件,你可以這樣做:

function isTimeEqual(d0, d1) { 
    return d0.getHours() == d1.getHours() && 
     d0.getMinutes() == d1.getMintues() && 
     d0.getSeconds() == d1.getSeconds() && 
     d0.getMilliseconds() == d1.getMilliseconds(); 
} 

你可能不關心毫秒。

如果你知道夏令時從來沒有在位置上觀測,或者時間爲UTC,你可以這樣做:

var msPerDay = 24*60*60*1000; 
return d0 % msPerDay == d1 % msPerDay; 

return !((d0 - d1) % 8.64e7); 
1

我認爲最好的方法是第二一。但是可以這樣做。

var d1 = new Date("10/10/2008 12:00"); 
var d2 = new Date("10/12/2008 12:30"); 
var diff = (d2-d1) % 86400000; 

如果你希望它爲D1> D2工作,

var d1 = new Date("10/11/2010 12:00"); 
var d2 = new Date("10/10/2010 12:30"); 

d1.setFullYear(d2.getFullYear()); 
d1.setMonth(d2.getMonth()); 
d1.setDate(d2.getDate()); 
var diff = d2-d1;