Честно говоря, весь этот кусок кода должен быть переписан. Логика обречена, потому что ваш параметр $ weekday сравнивает тот же день для $ currentTime и $ minutesOpen. Вы добавили 24 часа к $ minutesClose, чтобы подтолкнуть его к (технически ср.), Теперь это сравнение корректно. Там написано «Закрыто», потому что вы не перевели $ currentTime на 24 часа в день.
Итак, если вы просто прочитали это по-английски, вы сравнили бы 1:30 утра во вторник (который наступает сразу после ночи понедельника) с 18:30 во вторник, и это не удалось (это из-за параметра $ weekday устанавливается во вторник в $ currentTime).
Не видя, как вы заполняете свой параметр $ weekday, я предполагаю, что когда вы действительно запустите этот код, например, с помощью функции date (), в 12:01 (во вторник) он будет увеличиваться до wed, тогда ваш код будет заполнять время открытия и закрытия часами wed, которые тоже будут выключены.
Извините, я знаю, что это не решение, говорящее о переписывании всей логики, но оно будет иметь серьезные недостатки в производственной среде.
Если вы просто хотите, чтобы это работало, придерживаясь мышления / контекста «вторника», вы должны отразить текущее время в смысле вторника, то есть 25:05 означает 1:05 для ср, а не 01:05 вторник во второй раз. Это поддерживает правильный контекст и работает.
$currentTime = ($weekday - 1) * 1440 + "25" * 60 + "05";