php проверяет текущую дату во времени и диапазоне дат

#php #date #time #range

#php #Дата #время #диапазон

Вопрос:

Мне нужно проверить текущую дату в диапазоне дат и времени.

 if(date('N') >= 5 OR date('N') <= 6 AND date('H:i:s') >= "18:00:00" AND date("H:i:s") <= "08:00:00")
{
    $orderAvailable = 1;
}
else 
{
    $orderAvailable = 0;
}
 

Мне нужно отключить заказ с 18:00 четверга до 12:00 субботы. В чем проблема с этим кодом?

Комментарии:

1. Вероятно, вы хотели заключить OR условия в круглые скобки.

2. Я думаю, вам следует использовать родительские элементы, чтобы очистить ваше условие

Ответ №1:

Другими словами: вы хотите деактивировать заказы на

  • Четверг с 18:00.,
  • вся пятница
  • Суббота до 12 часов дня.

Это как условие:

 if(
 (date('N') == 4 AND date('Hi') >= 1800)
  OR (date('N') == 5)
  OR (date('N') == 6 AND date('Hi') < 1200)
) {
  $orderAvailable = 0;
}
else {
  $orderAvailable = 1;
}
 

Это было понятное решение. Короткая версия:

 $orderAvailable =  !(date('NHi') >= 41800 AND date('NHi') < 61200);
//true or false