2012-05-25 2 views
0

두 시간 범위가 겹치는 지 확인해야합니다. 예를 들어 ,PHP 시간 중복 검사

TIME1 : 13시 20분부터 13시 40분까지
TIME2 : 14시에서 14시 반까지
TIME3 : 13시 반에서 13시 50분까지

TIME1과 오버랩 TIME3. 이걸 어떻게 확인합니까?

시간 1과 시간 2의 간격은 20 분이지만 간격이 30 분 미만이면 겹치는 것으로 간주해야합니다.

누구나이 도움을받을 수 있습니다. 감사합니다.

+0

나는 그가 겹쳐진 것을 의미한다고 생각한다. –

+1

입력 형식은 어떻게됩니까? 실제 코드를 보여 주시겠습니까? –

답변

0

this?

$_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; 
     } 
    } 
}