PHP 获取多组时间的交集
PHP -
@Ted -
2018/05/31
1990
//测试数据
$dateTimeList = [
[
'beginTime' => '2018-05-21 08:00',
'endTime' => '2018-05-21 14:32',
],
[
'beginTime' => '2018-05-21 10:00',
'endTime' => '2018-05-21 19:00',
],
[
'beginTime' => '2018-05-21 12:50',
'endTime' => '2018-05-21 19:00',
],
];
/**
* 获取多组时间的交集
* @param $dateTimeList
* @return array
*/
public function getDateTimeCross($dateTimeList){
if(is_array($dateTimeList)){
$maxBeginTime = max(array_column($dateTimeList,'beginTime'));
$minEndTime = min(array_column($dateTimeList,'endTime'));
if($maxBeginTime > $minEndTime){
return [];
}
return [
'beginTime' => $maxBeginTime,
'endTime' => $minEndTime,
];
}
return [];
}