2008-12-07 79 views
3

我有以下情況:如何比較Javascript中的日期?

我有一個運行循環並執行某些操作的特定函數,並且錯誤條件可能會使其退出該循環。 我希望能夠檢查循環是否仍在運行。

對於這一點,我在做,每個循環運行:

LastTimeIDidTheLoop = new Date(); 

而在另一個功能,即通過每30秒的setInterval,我想要做的基本上是這樣的:

if (LastTimeIDidTheLoop is more than 30 seconds ago) { 
    alert("oops"); 
} 

我該怎麼做?

謝謝!

回答

5

怎麼樣:

newDate = new Date() 
newDate.setSeconds(newDate.getSeconds()-30); 
if (newDate > LastTimeIDidTheLoop) { 
    alert("oops"); 
} 
+0

這只是連接30到最後,如「Sun Dec 07 2008 16:45:19 GMT-0500(EST)30」 – defeated 2008-12-07 21:46:18

+0

是的,你是對的! 我修正了它,修改後的版本。 – 2008-12-07 21:50:47

-1

創建一個Date對象,並使用調用setSeconds()。

controlDate = new Date(); 
controlDate.setSeconds(controlDate.getSeconds() + 30); 

if (LastTimeIDidTheLoop > controlDate) { 
... 
7

JS日期對象店毫秒內,彼此的作品中的這些預期:

var diffSeconds = (new Date() - LastTimeIDidTheLoop)/1000; 
if (diffSeconds > 30) 
{ 
    // ... 
} 
0

你可以這樣做:

var dateDiff = function(fromdate, todate) { 
    var diff = todate - fromdate; 
    return Math.floor(diff/1000); 
} 

則:

if (dateDiff(fromdate, todate) > 30){ 
    alert("oops"); 
}