2012-02-15 40 views
0
var currentTime = Math.round(new Date().getTime()/1000) 
var previousTimeStamp = Math.round(new Date().getTime()/1000) 

var difference = currenTime - previousTimeStamp 

if(difference < 0 minutes) { 
    execute some code 
} 

此条件未得到执行。查找时间差并执行条件

+0

'currentTime'然后'currenTime'? – dfsq 2012-02-15 12:42:48

+0

这是一个verry怪异的声明?不应该0 = =? – 2012-02-15 12:42:55

回答

1

您的代码顺序没有意义,它在currenTime中有一个错字。

1)两个时间是相同的几乎毫秒
2)有作为的JavaScript

“0分”没有这样的事你想的差异小于60000毫秒,使用两个不同的时间

你的意思

var previousTimeStamp = Math.round(new Date().getTime()/1000); // seconds 
// here I guess some code comes which takes some time 
var currentTime = Math.round(new Date().getTime()/1000); // seconds 

var difference = currentTime - previousTimeStamp 

if(difference < 60) { // took less than a minute 
    execute some code 
} 
0

我认为差异将等于0。在这种情况下,0 < 0是假的,因此不执行的代码。

我认为计时器的分辨率是相当大的,所以记住这一点,因为你会经常得到两个时间戳相同的值。

1

你的代码有几个错误。首先,您有currenTime而不是currentTime。其次,你有0 minutes这是无效的Javascript。第三,你可能意思是一分钟而不是零分钟,因为如果当前时间是较早前的比以前时间只得到小于0。第四 - 这可能只是因为你给出了说明性的示例代码而不是真实的东西 - 你实际上是在“先前的时间戳”之前测量“当前时间”,这没有任何意义。

0

你的代码中有几处错误。这是正确的。

var currentTime = Math.round(new Date().getTime()/1000); 
var previousTimeStamp = Math.round(new Date().getTime()/1000); 

var difference = currentTime - previousTimeStamp; 

if (difference < 60) { 
    alert(1); 
} 
+0

@Gareth McCaughan回答了**是什么错误。 – c69 2012-02-15 12:46:33

+0

我认为60000是不正确的,因为他已经把时间除以1000 – 2012-02-15 12:47:04

+0

@Mario A. CorcheroJiménezTrue。 – c69 2012-02-15 12:47:56

0

我从来没有使用minutes,你有没有试过用:if(difference < 60)因为你已经设置为它们秒?