영업시간인지 아닌지 어떻게 확인할 수 있을까요?

영업시간인지 아닌지 어떻게 확인할 수 있을까요?

QA

영업시간인지 아닌지 어떻게 확인할 수 있을까요?

본문

어떤사업장이 오픈시간이 09:00 이고 클로즈시간이 23:00이라면 (두 컬럼에 시작시간과 종료시간을 담았습니다.) 그랬을 시 현재시간이 영업시간에 들어가는지 안들어가는지 어떻게 검사해야 할까요?

 


//$wr_1 오픈시간 09:00
//$wr_2 종료시간 23:00
$n_time = date('H:i');
if($wr_1 <= $n_time && $wr_2 >= $n_time) {
$status = "현재 영업시간입니다.";
}

 

위와 같이 해봤는데 안되네요 아시는 분 있으시면 답변 부탁드리겠습니다. 감사합니다.

이 질문에 댓글 쓰기 :

답변 5


<?php
$wr_1 = strtotime("10:00"); // 영업 시작 시간
$wr_2 = strtotime("04:00"); // 영업 종료 시간
$n_time = strtotime(date('H:i'));
 
if ($wr_1 <= $wr_2) {
    // 영업시간이 하루 내에 끝나는 경우
    if ($n_time >= $wr_1 && $n_time <= $wr_2) {
        $status =  "영업";
    } else {
        $status = "종료";
    }
} else {
    // 영업시간이 하루를 넘어가는 경우
    if ($n_time >= $wr_1 || $n_time <= $wr_2) {
        $status =  "영업";
    } else {
        $status = "종료";
    }
}
echo "현재 ".$status."중입니다.";
?>

잘 해놓으신것 같은데요

두가지를 체크해보세요

echo로 출력을 안해보신것같고

변수의 값들이 정확한지 확인을 해보세요

 

다음은 변수/체크 샘플입니다.


<?php
$wr_1 = "09:00";
$wr_2 = "23:00";
$n_time= date("H:i");
echo $wr_1."<BR>";
echo $wr_2."<BR>";
echo $n_time."<BR>";
if ($wr_1 <= $n_time  && $wr_2 >= $n_time) {
       $status =  "영업시간";
}
else {
    $status = "영업종료시간";
}
echo "현재 ".$status." 입니다.";

$n_time = date('H:i');
if ($n_time >= $wr_1 && $wr_1 <= $wr_2) {
    echo '현재 영업시간입니다.';
} else {
    echo '현재 영업 종료되었습니다.';
}

1. 10:00<BR>04:00<BR>03:21<BR>현재 영업종료시간 입니다.

if($wr_1 <= $n_time && $wr_2 >= $n_time) ==> if( 10:00 <= 03:21 &&  04:00 >= 03:21)

이것은 조건에 맞지않죠

다음처럼 되어야겠네요

 $status = "현재 영업종료시간 입니다.";

if($wr_2 < $wr_1){

 if( ($n_time >= $wr_1 && $n_time <= '24:00') || ($n_time>='00:00' && $n_time <=$wr_2)  )

  $status = "현재 영업시간입니다.";

}else{

 if($wr_1 <= $n_time && $wr_2 >= $n_time)

  $status = "현재 영업시간입니다."; 

}

 

 

1. 10:00<BR>04:00<BR>03:21<BR>현재 영업종료시간 입니다.

2. 09:00<BR>23:00<BR>03:21<BR>현재 영업종료시간 입니다.

3. 08:30<BR>22:30<BR>03:21<BR>현재 영업종료시간 입니다.

 

보시면 1번은 종료시간이 새벽4시이고 지금시간은 새벽3시 21분인데 영업시간 중인데 영업종료시간입니다.라고 나오고 2번과 3번은 종료시간이 맞지만 그러면 1번은 영업시간 입니다.로 나와야 하는데 모두 동일하게 값이 나오네요... 

제가 수식을 뭘 잘못썼는지 다시 답변 좀 부탁드리겠습니다.ㅠ.ㅠ 감사합니다. strtotime으로 변환도 해봤지만 역시 안되네요...

답변을 작성하시기 전에 로그인 해주세요.
전체 123,525 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT