Php 检查数组中的时间之间是否存在冲突

Php 检查数组中的时间之间是否存在冲突,php,Php,我想检查时间(H:I)开始-结束是否与数组中的时间冲突。 因此,我从表保留中检索数据,并将其转换为数组: $array = array( array( 'start' => new DateTime('2017-05-06 10:30'), 'end' => new DateTime('2017-05-06 13:30'), 'executor' => 1 //team 1 ), array(

我想检查时间(H:I)开始-结束是否与数组中的时间冲突。 因此,我从表保留中检索数据,并将其转换为数组:

$array = array(
    array(
        'start' => new DateTime('2017-05-06 10:30'),
        'end' => new DateTime('2017-05-06 13:30'),
        'executor' => 1 //team 1
    ),
    array(
        'start' => new DateTime('2017-05-06 09:30'),
        'end' => new DateTime('2017-05-06 10:30'),
        'executor' => 2 //team 2
    ),
    array(
        'start' => new DateTime('2017-05-06 12:30'),
        'end' => new DateTime('2017-05-06 15:30'),
        'executor' => 2 //team 2
    ),
    array(
        'start' => new DateTime('2017-05-06 13:00'),
        'end' => new DateTime('2017-05-06 16:30'),
        'executor' => 2 //team 2
    )
);
比如说,有一个新的访客1尝试进行预订,他输入日期: 若访客输入的日期和表中的数据一起折叠,则系统必须向访客发出警告“您选择的小时不可用”。如果没有崩溃,那么它将继续这个过程

案例1,访客在预订中输入此小时

$start = new DateTime('2017-05-06 11:00');
$end = new DateTime('2017-05-06 14:00');
$start = new DateTime('2017-05-06 11:00');
$end = new DateTime('2017-05-06 13:00');
它应该发出警告,因为11:00-14:00是用数组中的数据折叠的

案例2,访客在预订中输入此小时

$start = new DateTime('2017-05-06 11:00');
$end = new DateTime('2017-05-06 14:00');
$start = new DateTime('2017-05-06 11:00');
$end = new DateTime('2017-05-06 13:00');
正如我所料,它发出了警告

我的问题是案例1,为什么它不发出警告

这是我用来检查的代码

foreach ($array as $row) {
    if (isBetween($start1, $end1, $row['start'], $row['end'])) {
        echo 'Your selected hour is not available';
    }
}



 function isBetween(DateTime $to_check_start, DateTime $to_check_end, DateTime $start, DateTime $end) {
        return ($to_check_start->format('H:i') >= $start->format('H:i') && $to_check_end->format('H:i') <= $end->format('H:i'));
    }
foreach($array作为$row){
如果(isBetween($start1,$end1,$row['start'],$row['end'])){
回显“您选择的时间不可用”;
}
}
函数isBetween(DateTime$to_check_start,DateTime$to_check_end,DateTime$start,DateTime$end){
返回($to-check\u-start->format('H:i')>=$start->format('H:i')&&$to-check\u-end->format('H:i')格式('H:i');
}

我需要你的建议,谢谢。

@你能把这个问题解释清楚一点吗..比较字符串总是会得到意想不到的结果。对不起,伙计们,我赶时间。我已经更新了我的问题。非常感谢。