JQuery запускается каждые 5 минут после часа 5,10,15 ... 55 - PullRequest
0 голосов
/ 11 октября 2019

Я хочу запускать функцию каждые 5 минут после часа, т. Е. 08:05, 08:10, 08:15 и т. Д. Весь день

как мне адаптироваться:

 setTimeout(function(){ 
    xxxxxxx() 
 }, 300000);

для определения текущего времени - если кратно 5, тогда запустить функцию xxxxxx ()?

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

Использование setInterval для вызова функции каждую секунду. Затем с помощью фильтра по текущему времени минуты делятся на 5, а секунды равны нулю.

var timer = 0;
timer = setInterval(function(){ 
	var currentdate = new Date();  
	if(currentdate.getMinutes() % 5 == 0 && currentdate.getSeconds() == 0) {
		console.log("Alarm");
	}
}, 1000);
//to stop: clearInterval(timer);
1 голос
/ 11 октября 2019

Это довольно просто:

  • Подождите, пока вы не достигнете 5-минутной границы, используя setTimeout()
  • . Используйте setInterval() для вызова функции каждые 5 минут

function dosomething() {
  console.log("dosomething() called at " + new Date().toISOString());
}

var FIVEMINUTES = 5 * 60 * 1000;
var timeSincePrev = new Date() % FIVEMINUTES;
var timeUntilNext = timeSincePrev === 0 ? 0 : (FIVEMINUTES - timeSincePrev);

setTimeout(function() {
  dosomething(); // execute now
  setInterval(dosomething, FIVEMINUTES); // and after every 5 minutes
}, timeUntilNext);
...