/**
* PHP计算两个时间段是否有交集(边界重叠不算)
*
* @param string $beginTime1 开始时间1
* @param string $endTime1 结束时间1
* @param string $beginTime2 开始时间2
* @param string $endTime2 结束时间2
* @return bool
* @author www.02405.com
*/
function is_time_cross($beginTime1 = '', $endTime1 = '', $beginTime2 = '', $endTime2 = '')
{
$status = $beginTime2 - $beginTime1;
if ($status > 0)
{
$status2 = $beginTime2 - $endTime1;
if ($status2 >= 0)
{
return false;
}
else
{
return true;
}
}
else
{
$status2 = $endTime2 - $beginTime1;
if ($status2 > 0)
{
return true;
}
else
{
return false;
}
}
}
调用:
$beginTime1 = strtotime('2021-08-07 06:30');
$endTime1 = strtotime('2021-08-07 08:30');
$beginTime2 = strtotime('2021-08-07 05:30');
$endTime2 = strtotime('2021-08-07 06:31');
echo is_time_cross($beginTime1, $endTime1, $beginTime2, $endTime2);