@lemonlimelike

Как сравнить список интервалов?

Всем привет! Имеется такой список интервалов времени:

[ 
      ["09:20","12:00"],
      ["14:59","17:00"],
      ["18:00","19:00"],
      ["20:00","21:00"] ]


Задача такова.. необходимо сравнить каждый интервал времени, так чтоб не было пересечений.

Я начал делать, но у меня не получается, каждый раз переменная isInterval дает false.. хотя не должна
Как сделать правильно?
Вот сам код:

$intervals = [ 
      ["09:20","12:00"],
      ["14:59","17:00"],
      ["18:00","19:00"],
      ["20:00","21:00"] ];
$isInterval = checkInterval($intervals);

function checkIntervals(array $intervals)
    {
        $isInterval = true;
        $countItem = count($intervals);
        for ($i=0; $i < $countItem; $i++) { 
            for ($j=1; $j <= $countItem; $j++) { 
                $endInterval = new \DateTime($intervals[$i][1]);
                $startInterval = new \DateTime($intervals[$j][0]);
                $dateDiff = date_diff($endInterval, $startInterval);
                var_dump($j, $dateDiff->invert);
                
                if($dateDiff->invert === 1){
                    $isInterval = false;
                    echo "True";    
                    dd($intervals[$i], $intervals[$j]);
                    break;
                }else{
                    echo "False";
                }
            }
        }
        echo "hello";
        return $isInterval;
    }
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы