2015-05-28 2 views
0

Как обновить страницу автоматически каждые 15 минут на основе времени?jQuery auto refresh page on clock time

Например: обновление на 9:00, 9:15, 9:30, 9:45, 10:00, 10:15, так далее ..

Я видел подобное, как я хотел: https://stackoverflow.com/a/1217945/551559, но я не думаю, что это делает эту работу.

setInterval(function(){ 
    // check clock time on every minute?? 
    if (clock_time === '9:15') { 

    } 
},1000); 

Может ли кто-нибудь дать мне решение или любую ссылку, чтобы посмотреть?

+0

Что такое '' 'clock_time'''? Определяется ли это где-то или вы хотите также определить текущее время в JavaScript (например, '' 'new Date();' '')? –

+0

Вы должны указать, что вам нужно. Просто немного измените его, чтобы обновить через 15 минут после завершения первого таймера. –

ответ

10
setInterval(function(){ 
    var minutes = (new Date()).getMinutes() 
    if (!minutes%15) location.reload(); // if minutes is a multiple of 15 

},60000); // 60.000 milliseconds = 1 minute 

Объясняя, если (минут 15%!):

minutes % 15 является операцией по модулю. Он разделит минуты на 15 и вернет остальные. Так что, если результат равен 0, это означает, что протокол является кратным 15.

Теперь нам нужно инвертировать это значение: 0 эквивалентно ложным, поэтому мы хотим, 0 (не нуль = истина)

! Наконец, мы получим, что if(! minutes % 15) будет истинным, если минуты кратно 15.

+0

Большое спасибо;) – tonoslfx

1

Я не уверен, что вы хотите перезагрузить его каждые 15 минут, независимо от того, когда вы начали. Но если вам нужно получить доступ к местному времени и получить текущие часы и минуты используйте:

var dt = new Date(); 
var time = dt.getHours() + ":" + dt.getMinutes(); 

Вы можете проверить это следующим образом:

setInterval(function(){ 
    var dt = new Date(); 
    var clock_time = dt.getHours() + ":" + dt.getMinutes(); 
    if (clock_time === '9:15') { 
    location.reload(); 
    } 
},1000);//or every min, 60000 

Надеется, что это помогает.

+0

Вдоль правильных линий, но вам не нужно устанавливать интервал на каждую секунду. – Andy

+0

Вы в зависимости от того, что необходимо – Orochi1992

-2
<meta http-equiv="refresh" content="5"; URL=http://www.yourdomain.com"> 

Если он должен быть в использовании сценария Тайм-аут, как

setTimeout(function(){ window.location.reload(1); }, 5000); 
1

Вы можете использовать оператор модуля, чтобы работать, если мы в кратному 15 минут

setInterval(function(){ 
    var Now = new Date(); 
    if (Now.getMinutes() % 15 == 0) { 

    } 
},60000); // Run me every minute 
+0

'Now.getMinutes()% 15 = 0': неверно. – Andy

+0

@ Ошибка Энди? Какая ошибка? Это не «недопустимое назначение левой стороны», которое вы ищете;) –

+1

Это не «недопустимое назначение левой стороны», которое я ищу. – Andy

0

Вызовите эту функцию при загрузке страницы или через любой другой триггер, она установит таймаут для повторной загрузки страницы, когда он достигнет хх. [00 | 15 | 30 | 45] .00

function quaterlyRelaod() { 
    var d = new Date(), min = d.getMinutes(), sec = d.getSeconds(); 
    var timeout = ((15-min%15)*60-sec)*1000; 
    setTimeout(function(){ window.location.reload(); }, timeout); 
}