-1

2 つの経過時間を比較する方法を探しています。

2 番目の経過またはその一部が最初の経過にある場合 -> false を返します。ただし、最初のものまたはその一部が2番目のものにある場合-> 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;

しかし、それは私の脳内で静かに混乱しています。私はそれが何をすべきか確信が持てません。ありがとうございました。

編集

私の質問がこれと重複していることがわかりました

4

1 に答える 1

3

$a <= $b かつ $y <= $z の場合、カウント

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

if < 0 - no overlap    
   = 0 - common boundary point   
   > 0 - overlap
于 2016-04-29T20:04:21.510 に答える