Ted's Blog



PHP 获取多组时间的交集


//测试数据
$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 [];

}


分享:

写评论


Contact ME

github:https://github.com/tebie6

email:liumingyuphp@163.com

友情链接

无敌我大鑫哥:http://dream128.cn