Как проверить, пересекаются ли 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
Комментарии