@M4xwell

Как показывать блок только в определенный промежуток времени?

Здравствуйте. На сайте даются скидки при заказе ночью. GMT+4, с 22:00 до 06:00
Перерыл весь stackoverflow, какие-то части кода оттуда интерпретировал так:
не обращайте внимания на то, что в $periods другие данные по времени (тк на сервере время МСК)
<?
$periods=array(0000=>0500,2100=>2359); // промежутки времени без разделителей: с 00:00 до 05:00 и с 21:00 до 23:59
$currTime=date("Hi");

foreach($periods as $start=>$end){
    if($currTime>=$start && $currTime<$end){
        //echo "текущее время позволяет выполнить скрипт";
         echo  "Вам положена скидка";
        break;
    }
   
}
?>


Суть вопроса - код вроде бы как корректен, но в 4 утра при проверке надпись про скидку исчезла. Буду рад выслушать любые предложения по решению
  • Вопрос задан
  • 331 просмотр
Пригласить эксперта
Ответы на вопрос 2
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Учитываете разницу время сервера со временем пользователя?
Ответ написан
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Смените таймзону в скрипте на любую с GMT+4
Главное иметь актуальную базу timezone.db которую использует PHP, чтобы правильно учитывался переход на летнее/зимнее время, или наоборот отсутствие такого перехода.

<?php
date_default_timezone_set("Europe/Samara");
//ваш код
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы