Как мне сравнить даты в Javascript? - PullRequest
3 голосов
/ 08 декабря 2008

У меня следующая ситуация:

У меня есть определенная функция, которая запускает цикл и делает что-то, и из-за ошибок могут выйти из цикла Я хочу проверить, работает ли цикл или нет.

Для этого я делаю для каждого запуска цикла:

LastTimeIDidTheLoop = new Date();

И в другой функции, которая запускается через SetInterval каждые 30 секунд, я хочу сделать это:

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

Как мне это сделать?

Спасибо!

Ответы [ 4 ]

7 голосов
/ 08 декабря 2008

Объекты даты JS хранят внутренние миллисекунды, вычитая их друг от друга, как и ожидалось:

var diffSeconds = (new Date() - LastTimeIDidTheLoop) / 1000; 
if (diffSeconds > 30)
{
  // ...
}
5 голосов
/ 08 декабря 2008

а как же:

newDate = new Date()
newDate.setSeconds(newDate.getSeconds()-30);
if (newDate > LastTimeIDidTheLoop) {
  alert("oops");
}
0 голосов
/ 22 июня 2015

Вы можете сделать так:

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

тогда:

if (dateDiff(fromdate, todate) > 30){
    alert("oops");
}
0 голосов
/ 08 декабря 2008

Создайте объект даты и используйте setSeconds ().

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

if (LastTimeIDidTheLoop > controlDate) {
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...