Heim  >  Artikel  >  Backend-Entwicklung  >  时间的判断问题

时间的判断问题

WBOY
WBOYOriginal
2016-06-23 13:45:48935Durchsuche

A1  2014-10-1   10:00:00
A2  2014-10-2   14:00:00
B1  2014-10-4   13:00:00
B2  2014-10-5   15:00:00

A1为开始时间,A2为结束时间,B1为开始时间,B2为结束时间
现在有时间 C1-C2

如何判断C1-C2,如果在A1-A2或者B1-B2里面或者有交叉,出现弹框提示。


回复讨论(解决方案)

转换成时间戳 然后比较大小

观察一个事实

$ar = array(  'A1' => '2014-10-1 10:00:00',  'A2' => '2014-10-2 14:00:00',  'B1' => '2014-10-4 13:00:00',  'B2' => '2014-10-5 15:00:00',);$ar['C1'] = '2014-10-3 13:00:00';$ar['C2'] = '2014-10-5 13:00:00';asort($ar);print_r($ar);
Array(    [A1] => 2014-10-1 10:00:00    [A2] => 2014-10-2 14:00:00    [C1] => 2014-10-3 13:00:00    [B1] => 2014-10-4 13:00:00    [C2] => 2014-10-5 13:00:00    [B2] => 2014-10-5 15:00:00)
根据键名就可准确的判断出来了吧?

观察一个事实

$ar = array(  'A1' => '2014-10-1 10:00:00',  'A2' => '2014-10-2 14:00:00',  'B1' => '2014-10-4 13:00:00',  'B2' => '2014-10-5 15:00:00',);$ar['C1'] = '2014-10-3 13:00:00';$ar['C2'] = '2014-10-5 13:00:00';asort($ar);print_r($ar);
Array(    [A1] => 2014-10-1 10:00:00    [A2] => 2014-10-2 14:00:00    [C1] => 2014-10-3 13:00:00    [B1] => 2014-10-4 13:00:00    [C2] => 2014-10-5 13:00:00    [B2] => 2014-10-5 15:00:00)
根据键名就可准确的判断出来了吧?



这是举例,实际数据是一堆的数组

无论有多少数据,算法都是不变的
只要依次检查键名,同组的“开始”和“结束”不相邻就是有交叉或嵌套

不写具体代码的原因是:你的情况远比示例复杂,写了你也套不上去。关键在于理解

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn