У меня есть класс доступности, который делает много проверок, чтобы увидеть, доступна ли дата, но одна из этих проверок состоит в том, чтобы увидеть, находится ли зарезервированный продукт в окне бронирования (т.е. в будущем достаточно, чтобы соответствовать критериям пользователя для того жедневные заказы). Код ниже -
private function set_within_booking_window(){
$timezone = get_option('timezone_string');
$starttime = cb_get_product_starttime($this->product_id, $this->date);
$this->starttime = $starttime;
//get booking window
$window = new DateTime();
$window->setTimezone(new DateTimeZone($timezone));
$buffer = get_option("cb_same_day_buffer");
$window->add(new DateInterval("PT".$buffer."H"));
$this->window = $window;
if($starttime < $window){
$this->within_booking_window = false;
} else {
$this->within_booking_window = true;
}
}
При изучении производительности вся эта операция является хорошо построенной и быстрой, ЗА ИСКЛЮЧЕНИЕМ сравнения DateTime с if ($ starttime <$ window), которое в основном УБИВАЕТ производительность всего этого класса доступности. ,Загрузка страницы составляет менее 1 секунды с этим закомментированным выражением и более 26 секунд с оставшимся в нем. </p>
Все, что я прочитал в документации PHP, говорит о том, что это лучший способ сравнить две даты -но это просто не может быть правильным ...
Есть ли какие-либо отзывы о производительности при сравнении двух объектов PHP DateTime?