Всем привет! Имеется такой список интервалов времени:
[
["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;
}