2012-02-07 16 views
1

5分ごとに、その日の特定の時間帯にリロードするWebサイトがあります。時間は、午前9時から午前12時までの5分ごとです。それ、どうやったら出来るの?指定された時間範囲のページを更新する

function refreshAt(hours, minutes, seconds) { 
    var now = new Date(); 
    var then = new Date(); 

    if(now.getHours() > hours || 
     (now.getHours() == hours && now.getMinutes() > minutes) || 
     now.getHours() == hours && now.getMinutes() == minutes && now.getSeconds() >= seconds) { 
     then.setDate(now.getDate() + 1); 
    } 
    then.setHours(hours); 
    then.setMinutes(minutes); 
    then.setSeconds(seconds); 

    var timeout = (then.getTime() - now.getTime()); 
    setTimeout(function() { window.location.reload(true); }, timeout); 
}refreshAt(15,35,0); //Will refresh the page at 3:35pm 

次はただ与えられた時間

答えて

0

これを試してみてくださいためのものです。

function set_timer() 
{ 
var var from = 9, to = 12, every = 5, now = new Date(); 

if (now.getHours()<from) // prepare to run at 'from' hours exactly 
    setTimeout(refresh_me, from * 3600 * 1000 - 
     ((now.getHours() * 60 + now.getMinutes()) * 60 + now.getSeconds()) * 1000); 

// run 'every' period between 'from' and 'to' 
if (now.getHours()>=from && now.getHours()<to) 
    setTimeout(refresh_me, every * 60 * 1000); 

if (now.getHours()>=to) // prepare for tomorrow's run at 'from' 
{ 
    var tomorrow = new Date(now.getFullYear(), now.getMonth(), 
          now.getDate() + 1, 0, 0, 0); 
    setTimeout(refresh_me, 
       from * 3600 * 1000 + tomorrow.getTime() - now.getTime()); 
} 
} 

function refresh_me() 
{ 
if ((new Date()).getHours()<to) // check the time between 12:00 and 12:05 
    window.location.reload(true); 
else 
    set_timer(); // reset timer if function is called between 12:00 and 12:05 
} 

set_timer(); 
0
var startTime = new Date(2000,1,1,9,30); 
var endTime = new Date(2000,1,1,15,30); 
window.setInterval(function() 
{ 
    if(new Date().toLocaleTimeString() >= startTime.toLocaleTimeString() && 
     new Date().toLocaleTimeString() <= endTime.toLocaleTimeString()) 
     window.location.reload(true); 
}, 5 * 60 * 1000) 
+1

あなたはそれ以外の場合は1リフレッシュをスキップし、それはそれだ、あなたのコード内でのsetIntervalを使用する必要があります。しかし、あなたが休止期間を気にしなくても、問題はありません。 – Cheery

+0

私は間違いを修正しました。ありがとう。 – Daniel

関連する問題