date — jQuery / PHP: обновить страницу согласно времени сервера

Я пытаюсь сделать сценарий jQuery для перезагрузки всей страницы.
Это код, который я получил до сих пор;

<script type="text/javascript">
setInterval("refresh();",5000);
function refresh(){
window.location = location.href;
}
</script>

Это отлично работает для перезагрузки полной страницы каждые 5 секунд, но я пытаюсь продвинуть это немного дальше. Что я хочу сделать, так это то, что страница перезагружается каждый новый час согласно времени сервера. Допустим, сейчас время 22:50. Я хочу, чтобы скрипт обновил страницу в 23:00, когда наступил новый час. (Через 10 минут после того, как пользователь посетил страницу). Если время входа пользователя составляет 22:55, сценарий должен обновить страницу через 5 минут после того, как пользователь зашел на страницу, и так далее.

Есть ли простой способ сделать это? Я могу использовать функцию date () в PHP, чтобы вычислить время, оставшееся в текущем часе. У меня есть этот сценарий до сих пор;

<?php
$date = date("i:s");

list($cur_min, $cur_sec) = explode(':', $date);

$mins_left = ($cur_min == 59) ? 0 : 60 - $cur_min;
$secs_left = 60 - $cur_sec;

echo 'There is ' . ($mins_left)  . ' minutes and ' . $secs_left . ' seconds left until the next hour';
?>

Это прекрасно работает для отображения времени, оставшегося до следующего часа. Все идет нормально. То, с чем я сейчас борюсь, это чтобы время оставалось до следующего часа в миллисекундах. Таким образом, я могу использовать PHP для создания строки с оставленными миллисекундами и использовать ее в скрипте jQuery. Например, сохраните общее количество миллисекунд, оставшихся в часе, в $ timeleft. Если бы я смог добиться этого, сценарий jQuery был бы очень простым. Как это;

<script type="text/javascript">
setInterval("refresh();",<?php echo $timeleft ?>);
function refresh(){
window.location = location.href;
}
</script>

Любая помощь будет высоко оценен!

1

Решение

<?php
$date = date("i:s");

list($cur_min, $cur_sec) = explode(':', $date);

$mins_left = ($cur_min == 59) ? 0 : 60 - $cur_min;
$secs_left = 60 - $cur_sec;

echo 'There is ' . ($mins_left)  . ' minutes and ' . $secs_left . ' seconds left until the next hour';
$time=($mins_left*60+$secs_left)*1000;
?>
<script type="text/javascript">
setInterval("refresh()",<?php echo $time; ?>);
function refresh(){
window.location = location.href;
}
</script>

Пожалуйста, попробуйте эту надежду, это полезно

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]