如何比较Javascript中的日期?

时间:2008-12-07 21:40:30

标签: javascript date

我有以下情况:

我有一个运行循环并执行操作的特定函数,错误条件可能会使其退出该循环。 我希望能够检查循环是否仍在运行。

为此,我正在为每次循环运行:

LastTimeIDidTheLoop = new Date();

在另一个每30秒运行一次SetInterval的函数中,我想基本上这样做:

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

我该怎么做?

谢谢!

4 个答案:

答案 0 :(得分:7)

JS日期对象在内部存储毫秒,相互减去它们按预期工作:

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

答案 1 :(得分:5)

怎么样:

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

答案 2 :(得分:0)

你可以这样做:

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

然后:

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

答案 3 :(得分:-1)

创建日期对象并使用setSeconds()。

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

if (LastTimeIDidTheLoop > controlDate) {
...