每隔一小时调用一次功能

时间:2015-07-23 13:36:58

标签: jquery

我想每隔一小时调用一次jquery函数。 所以11:00,12:00,13:00等。

这是功能:

function flipIt() {
    $('#flip').addClass('animate pulse');
    $('#flip').removeClass('animate pulse').delay(1500);
}

我怎样才能每隔一小时打电话一次?

4 个答案:

答案 0 :(得分:5)

你可以这样做:

setInterval(function(){
  
  if(new Date().getMinutes() === 0) {
    flipIt()
  }
},60000)

// for testing
setInterval(function(){
  if(new Date().getSeconds() === 0) {
    alert("new minute !");
  }
},1000)

function flipIt() {
    $('#flip').addClass('animate pulse');
    $('#flip').removeClass('animate pulse').delay(1500);
}

答案 1 :(得分:1)

每小时只触发一次的解决方案:

function alertNextHour() {
    var nextAlert = new Date();
    nextAlert.setHours(nextAlert.getHours() + 1);
    nextAlert.setMinutes(0);
    nextAlert.setSeconds(0);
    nextAlert.setMilliseconds(0);

    var timeToNextAlert = nextAlert - new Date();

    setTimeout(function() {
        // do what you want

        alertNextHour();
    }, timeToNextAlert);    
}

答案 2 :(得分:1)

这是一种取决于动态间隔的方法。以下函数将根据剩余时间到整个小时来设置超时:

function getDelay(){
    var date = new Date();
    var hour = date.getMinutes();
    return (60 - hour) * 60 * 1000; //get the milliseconds until the next full hour
}

delay = getDelay();
var dynamicInterval = function(){
    clearInterval(interval); //stop the current interval
    delay = getDelay();
    interval = setInterval(dynamicInterval, delay); //set the new interval with the new delay
}
var interval = setInterval(dynamicInterval, delay); //initial start of the interval

<强> Demo

注意:该演示处理秒而不是几分钟。

答案 3 :(得分:0)

window.setInterval(function(){
  /// call your function
}, 3600000);