Как: обновлять страницу между определенными временами в день недели?

#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 секунд для более быстрого тестирования).