php для сравнения двух промежутков времени

Я ищу способ сравнить два промежутка времени.

Если второй провал или его часть находится в первом -> верните false. Хотя, если первый или его часть находится во втором -> тоже верните false.

Я чувствую, что не надо было пропускать уроки математики ...

я получил

// first lapse
$a = strtotime('2016/05/04 22:50');
$b = strtotime('2016/05/20 22:15');
// second lapse
$y = strtotime('2016-05-12 12:00');
$z = strtotime('2016-05-20 10:00');

if (($y >= $a && $y <= $b) || ($z >= $a && $z <= $b)
|| ($a >= $y && $a <= $z) || ($b >= $y && $b <= $z)) 
    return false;

Но у меня в голове тихая путаница. Я не уверен, что он делает то, что должен делать. Спасибо.

Изменить

Я обнаружил, что мой вопрос дублировался с этим


person JazZ    schedule 29.04.2016    source источник
comment
если вы не уверены, что он делает то, что должен, как мы узнаем?   -  person dustinroepsch    schedule 29.04.2016
comment
Потому что это форум обмена знаниями. Мне просто нужна помощь ... И я хочу научиться.   -  person JazZ    schedule 29.04.2016
comment
Компьютеры не волшебство, и мы не экстрасенсы. Если вы не можете описать желаемый результат и / или процесс его получения, тогда нет смысла даже пытаться написать код.   -  person Sammitch    schedule 29.04.2016
comment
Это потому, что я сказал, что пропускаю уроки математики?   -  person JazZ    schedule 29.04.2016


Ответы (1)


если $ a ‹= $ b и $ y‹ = $ z, считать

min($b, $z) - max($a, $y)

if < 0 - no overlap    
   = 0 - common boundary point   
   > 0 - overlap
person splash58    schedule 29.04.2016
comment
если ›0 - без оверлея, а если› 0 - без оверлея? Выглядит довольно серьезно, но я плохо это понимаю. Не могли бы вы добавить несколько пояснений? - person JazZ; 29.04.2016
comment
Спасибо. опечатка. Просто нарисуйте на бумаге, и вы поймете - максимум левого края отрезка правый, чем минимум правого. - person splash58; 29.04.2016
comment
@AdrienLeber вы понимаете решение? - person splash58; 29.04.2016
comment
Да, я тестировал это решение. Вроде отлично работает. Спасибо за вашу помощь и спасибо, что вы не сказали мне блабла ... компьютеры не волшебство ... блабла ... возвращайся в школу ... блабла ... - person JazZ; 29.04.2016
comment
Удачи! Рад помочь - person splash58; 29.04.2016