php 判断两个时间段是否有交集

一开始,没啥思路,全靠百度,记录一下哈

 1     public function demo(){
 2         //例子
 3         $astart = strtotime("1995-06-16 12:00:00");//第1个开始
 4         $aend = strtotime("2008-06-16 12:00:00");//第1个结束
 5         $bstart = strtotime("2006-06-16 12:00:00");//第2个开始
 6         $bend = strtotime("2015-06-16 12:00:00");//第2个结束
 7         $isIntersection = false;
 8         if ($bstart - $astart > 0) {
 9             if ($bstart - $aend <= 0) {
10                 $cstart = $bstart;
11                 $cend = $aend;
12                 $isIntersection = true;
13             }
14         } else {
15             if ($bend - $astart > 0) {
16                 $cstart = $astart;
17                 $cend = $bend;
18                 $isIntersection = true;
19             }
20         }
21         if ($isIntersection == true) {
22             echo date('Y-m-d H:i:s', $cstart) . '--' . date('Y-m-d H:i:s', $cend);
23         }
24     }

结果:2006-06-16 12:00:00--2008-06-16 12:00:00

原文地址:https://www.cnblogs.com/zgbcode/p/10142340.html