Проблема с обработкой StoreTime и OrderTime

#php #algorithm

#php #алгоритм

Вопрос:

Допустим, магазины открываются в 15: 00, но клиенты могут делать заказы только после 16: 00 (в зависимости от времени открытия магазинов), приведенный ниже код работает так, как ожидалось

         $nowtime = $this->HourMinuteToDecimal(date('H:i'));

        $OrderTime = $this->HourMinuteToDecimal('16:00');

        $storeOpeningTime = $this->HourMinuteToDecimal($data[$key]['opentime']);


        if ($nowtime >= $OrderTime amp;amp; ($OrderTime >= $storeOpeningTime)) {
            $data[$key]['open'] = 1;
        } else {
            $data[$key]['open'] = 0;
        }


public function HourMinuteToDecimal($hour_minute) {
    $t = explode(':', $hour_minute);
    return $t[0] * 60   $t[1];
}
  

Существует проблема, что делать, если время открытия магазина — 18:00, но время заказа по умолчанию — 16:00, как исправить это решение? В этом случае клиент может разместить заказ только после 18:00.

Общее правило: Клиент может разместить заказ только после 16:00 (время заказа), но в зависимости от времени открытия магазина первым.

Ответ №1:

Заказы принимаются после OrderTime и StoreOpeningTime, так что это означает, что соответствующее время является последним из этих двух.

 if ($nowtime >= max($OrderTime, $StoreOpeningTime)) {
    $data[$key]['open'] = 1;
}
// ...