PHP 怎么判断多个时间段是否重叠
时间: 2023-10-02 07:03:23 浏览: 43
判断多个时间段是否重叠,可以使用一个双重循环来遍历每个时间段,比较是否有重叠。以下是一个示例代码:
```php
function isTimeOverlapping($times) {
$count = count($times);
for ($i = 0; $i < $count - 1; $i++) {
for ($j = $i + 1; $j < $count; $j++) {
if ($times[$i]['start'] <= $times[$j]['end'] && $times[$i]['end'] >= $times[$j]['start']) {
return true;
}
}
}
return false;
}
// 例子:
$times = array(
array('start' => strtotime('2021-01-01 08:00:00'), 'end' => strtotime('2021-01-01 10:00:00')),
array('start' => strtotime('2021-01-01 09:00:00'), 'end' => strtotime('2021-01-01 11:00:00')),
array('start' => strtotime('2021-01-01 12:00:00'), 'end' => strtotime('2021-01-01 13:00:00'))
);
if (isTimeOverlapping($times)) {
echo '时间段重叠';
} else {
echo '时间段不重叠';
}
```
其中`$times`是一个包含多个时间段的数组,每个时间段包含`start`和`end`两个元素,分别表示时间段的开始时间和结束时间。函数`isTimeOverlapping`返回一个布尔值,表示多个时间段是否有重叠。