#php #jquery #date #time #refresh
#php #jquery #Дата #время #обновить
Вопрос:
Я бы хотел, чтобы веб-страница автоматически обновлялась между определенными временами в определенный день недели (с 9 утра до 12 вечера по средам). На странице будет доступно новое содержимое, и я хочу убедиться, что кто-то увидит содержимое, не забывая обновлять страницу самостоятельно. Не уверен, как завершить работу над этим. Вот что у меня есть на данный момент:
<?php
$page = $_SERVER['REQUEST_URI'];
$sec = '600000'; // 10 minutes
date("Y-m-d");
date_default_timezone_set('America/Denver');
$time= date('w H:i'); // Day Hour:Minute
if($time >= '3 09:00' amp;amp; $time <= '3 12:00') { //after 9am and before 12pm on Wednesday
echo '<style type="text/css">.element { display:block; }</style>';
} else {
echo '<style type="text/css">.element { display:none; }</style>';
}
?>
<script type="text/javascript">
setInterval(function() {
window.location.href = '<?php echo $page; ?>';
},<?php echo (int)$sec; ?>);
</script>
Даже однократное обновление может быть более идеальным…
Ответ №1:
Я думаю, что лучше поместить ваш javascript в переменную php ($ js).
Лучше использовать setTimeout вместо setInterval, если вы хотите обновить только один раз.
<?php
$js = '';
$page = $_SERVER['REQUEST_URI'];
$sec = '600000'; // 10 minutes
date("Y-m-d");
date_default_timezone_set('America/Denver');
$time= date('w H:i'); // Day Hour:Minute
if($time >= '3 09:00' amp;amp; $time <= '3 12:00') { //after 9am and before 12pm on Wednesday
echo '<style type="text/css">.element { display:block; }</style>';
$js = '<script type="text/javascript">setTimeout(function() { location.reload(); }, ".(int)$sec."); </script>';
} else {
echo '<style type="text/css">.element { display:none; }</style>';
}
echo $js;
?>
Скажите мне, если это то, что вам нужно.
Комментарии:
1. Спасибо, @The_Death_Raw. К сожалению, страница продолжает циклически обновляться и в конечном итоге истекает / перестает отвечать на запросы. Он не обновляется каждые 10 минут (я даже изменил его на 30 секунд для более быстрого тестирования).