【发布时间】:2019-10-08 15:05:08
【问题描述】:
我想检查数组中的任何日期是否会与其他日期重叠。 我只想知道它是真是假。 它必须检查开始和停止时间是否会与其他行中的时间重叠。
这是我的数组的一个示例。 在这种情况下,它应该返回 false。
$testFalse = [
'row_0' => [
'startTime' => '2019-10-07 07:30:00',
'stopTime' => '2019-10-07 09:00:00'
],
'row_1' => [
'startTime' => '2019-10-07 07:30:00',
'stopTime' => '2019-10-07 08:00:00'
],
'row_2' => [
'startTime' => '2019-10-07 08:30:00',
'stopTime' => '2019-10-07 10:00:00'
],
];
在这种情况下,它应该返回 true。
$testTrue = [
'row_0' => [
'startTime' => '2019-10-07 07:30:00',
'stopTime' => '2019-10-07 09:00:00'
],
'row_1' => [
'startTime' => '2019-10-07 09:00:00',
'stopTime' => '2019-10-07 10:00:00'
],
];
我目前的尝试是,但我不想以某种方式将其组合成一个循环:
//------------StartTime row-0--------------------
if (($array['row_0']['startTime'] >= $array['row_1']['startTime']) && ($array['row_0']['startTime'] <= $array['row_1']['stopTime'])){
var_dump('Is between');
}else{
var_dump('Not between');
}
if (($array['row_0']['startTime'] >= $array['row_2']['startTime']) && ($array['row_0']['startTime'] <= $array['row_2']['stopTime'])){
var_dump('Is between');
}else{
var_dump('Not between');
}
?>
【问题讨论】:
-
欢迎您!要询问On Topic question,请阅读Question Check list 和perfect question 以及如何创建Minimal, Complete and Verifiable Example 和take the tour。 我们非常愿意帮助您修复代码,但我们不会为您编写代码。
-
只需检查下一个日期是否在前一个日期之间,例如like this
-
@freeek 这就是我尝试过的,并让它工作了一半。我的问题是多行...
-
@Dave 更新帖子...