php比较两次失误

时间:2016-04-29 19:47:12

标签: php datetime math compare timelapse

我正在寻找一种方法来比较两个时间段。

如果第二次失效或其中的一部分在第一次失效中 - >返回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;

但它在我脑子里安静地混淆了。我不确定它做了它想做的事情。 谢谢。

修改

我发现我的问题重复with this one

1 个答案:

答案 0 :(得分:3)

如果$ a&lt; = $ b和$ y&lt; = $ z,则计数

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

if < 0 - no overlap    
   = 0 - common boundary point   
   > 0 - overlap