2017-12-22 7 views
1

예를 작동하지를 내 tmp를 배열은 다음과 같습니다시간 비교가 : 시간 형식 문자열 PHP 아이오와 -

Array 
(
    [checkin] => 11:00am 
    [checkout] => 12:00pm 
    [day_from] => 09:59am 
    [day_to] => 06:00pm 
) 

내가 시간을 비교하는 코드 아래 사용하고 있지만, 두 경우 모두 항상 '안녕하세요'에도 체크인를 표시 시간과 체크 아웃 시간은 둘 다 낮과 밤 사이에 있습니다.

실제로이 기능은 손님의 체크인 및 체크 아웃 시간이 시작 시간부터 시작까지 영업하는 레스토랑 내에 있는지 여부를 확인하는 기능입니다.

도움이 될 것입니다.

$tmp_arr = array(); 
$tmp_arr['checkin'] = $checkin = date('h:ia',strtotime($checkin)); 
$tmp_arr['checkout'] = $checkout = date('h:ia',strtotime($checkout)); 
$tmp_arr['day_from'] = $day_from = date('h:ia',strtotime($day_from)); 
$tmp_arr['day_to'] = $day_to = date('h:ia',strtotime($day_to)); 
print_r($tmp_arr); 
if($checkin>=$day_from && $checkin<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 
if($checkout>=$day_from && $checkout<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 

답변

0

:-) 미리 감사드립니다 당신은 단지 한 strtotime를 사용하여 유닉스 타임 스탬프로 시간 문자열을 변환해야합니다. 그런 다음 예상 한 방식으로 비교할 수 있습니다.

$checkin = '11:00am'; 
$checkout = '12:00pm'; 
$day_from = '09:59am'; 
$day_to = '06:00pm'; 

$tmp_arr = array(); 
$tmp_arr['checkin'] = $checkin = strtotime($checkin); 
$tmp_arr['checkout'] = $checkout = strtotime($checkout); 
$tmp_arr['day_from'] = $day_from = strtotime($day_from); 
$tmp_arr['day_to'] = $day_to = strtotime($day_to); 
print_r($tmp_arr); 
if($checkin>=$day_from && $checkin<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 
if($checkout>=$day_from && $checkout<=$day_to){ 
    echo "hi"; 
} 
else{ 
    echo "hello"; 
} 
+0

고마워요. 그것은 효과가있다! –