Вот несколько вещей, которые я бы попробовал:
Первое, воскресенье == 0, , а не 7 .Суббота == 6. и все остальное между ними как таковое.
Установите часовой пояс только в том случае, если у вас есть установка по умолчанию где-то еще, которая не делает ни одно утверждение верным.
Используйте date_default_timezone_set () вверху вашего кода.Я нахожусь в центральном времени, поэтому я бы установил
date_default_timezone_set('America/Chicago');
Значение по умолчанию можно изменить в php.ini в строке "date.timezone = America / Chicago", по умолчанию, прежде чем я изменил его где-то вВеликобритания.
Я вижу в комментарии, который вы добавили.
if($day == 7 && $m >= 700 && $day == 3 1125)
отформатирован правильно, с воскресеньем в 0.
if($day == 0 && $m >= 700 && $day == 3 && $m <= 1125)
Я действительно дал вам неправильный ответсначала, но я вижу, что ты пытаешься сделать.Проблема в том, что это будет верно только с воскресенья по среду с 700 - 1125 каждый день .Так что в понедельник в 6:30 это было бы неверно.Оператор if не отформатирован правильно для того, что вы хотите сделать, но вы бы хотели использовать временную метку в своем состоянии.
Чтобы ответить на исходный код.Попробуйте это:
<?php
date_default_timezone_set('/*ENTER YOUR TIME ZONE HERE*/ /*Find it here: http://www.php.net/manual/en/timezones.php*/');
$hour = date('G');
$minute = date('i');
$day = date('w');
$m = $hour * 60 + $minute; // Minutes since midnight.
if(
$day == 0 // Sunday...
&& $m >= 615 // ... after 10:15…
&& $m <= 700 // ... but before 11:40…
) header("Location: open.php");
else if(
$day == 3 // Wednesday...
&& $m >= 1125 // ... after 18:45…
&& $m <= 1235 // ... but before 20:35…
) header("Location: open.php");
Надеюсь, это решит вашу проблему!