Как проверить, пересекаются ли 2 интервала дат (PHP)

Чтобы проверить, пересекаются ли два интервала между собой, можно воспользоваться данной функцией:

 function dateIntervalsOverlay(DateTime $firstStart, DateTime $firstEnd, DateTime $secondStart, DateTime $secondEnd): bool
{
$return = false;
if (($firstStart<= $secondEnd) and ($firstEnd>= $secondStart)) {
$return = true;
}
return $return;
}

Пример использования:

$d1s =  new DateTime('2022-09-01');
$d1e = new DateTime('2022-09-24');
$d2s = new DateTime('2022-09-22');
$d2e = new DateTime('2022-09-28');

$test = dateIntervalsOverlay($d1s, $d1e,$d2s, $d2e);
var_dump($test); // true

Другой пример:

$d1s =  new DateTime('2022-09-01');
$d1e = new DateTime('2022-09-15');
$d2s = new DateTime('2022-09-22');
$d2e = new DateTime('2022-09-28');

$test = dateIntervalsOverlay($d1s, $d1e,$d2s, $d2e);
var_dump($test); // false

Комментарии

Комментариев пока нет, вы можете оставить свой: