2012-05-25 114 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; 
     } 
    } 
}