2012-05-25 46 views
0

我需要检查两个时间范围是否重叠。 例如,PHP时间重叠检查

TIME1:13:20 - 13时40分
TIME2:14:00 - 14:30
时间3:13:30 - 13点50分

TIME1和时间3重叠。我如何检查这个?

time1和time2有20分钟的差距,但是如果差距小于30分钟,它也应该被认为是重叠的。

任何人都可以帮助我,非常感谢。

+0

我觉得他意味着重叠。 –

+1

你输入的格式如何?你能告诉我们一个真实的代码吗? –

回答

0

这个?

$_30mins = 60*30; // 60 secs * 30 minutes 
// make the times into seconds 
$times = array(); 
$times[] = array("from"=>mktime(13,20,0,1,1,1970),"to"=>mktime(13,40,0,1,1,1970)); 
$times[] = array("from"=>mktime(14,00,0,1,1,1970),"to"=>mktime(14,30,0,1,1,1970)); 
$times[] = array("from"=>mktime(13,30,0,1,1,1970),"to"=>mktime(13,50,0,1,1,1970)); 

foreach($times as $key=>$val) { 
    foreach($times as $key2=>$val2) { 
     if ($key2!=$key && (($val["from"]>=$val2["from"] && $val["from"]<=$val2["to"]) || 
     (abs($val["to"]-$val2["from"])<$_30mins))) { 
     echo "time $key overlaps with $key2<br>"; 
     break; 
     } 
    } 
}