Сравнение дат при расчете для ночных часов

#php #regex #algorithm #laravel-8 #logical-operators

Вопрос:

У меня есть модель connection , которая, среди прочих данных, имеет start end дату и в формате Y-m-d H:i . У меня есть другая модель tariff , которая записывает дни, в которые применяется определенный тариф (для выбора Пн-Вт-Ср-Чт-Пт-Сб-Вс) и время (например. ’08:00 — 16:00′). Теперь, если я использую приведенный ниже код, чтобы оценить tariff , применяется ли a к данной connection работе только в течение connection start и end часов между 24 часами, а не за tariff время, которое занимает рассвет (например. ’16:00 — 06:00′)

 // work for connection: start at "2021-6-4 14:25" and end at "2021-6-4 22:30" tariff apply from "12:00"-"20:00"

if(date('H:i', strtotime($connection->start_date->format('H:i'))) >= date('H:i', strtotime($tariff->initial_time))
        amp;amp;
    date('H:i', strtotime($connection->end_date->format('H:i'))) <= date('H:i', strtotime($tariff->end_time))) 
{
   return true;
}
 

Теперь не оценивайте соединение, которое, например : начните «2021-6-4 06:24» — «2021-6-4 06:45» и применяйте тариф для ночных часов, которые начинаются «17:00» — «07:00»

Какой должна быть логика для достижения этого последнего примера?