테스트 사이트 - 개발 중인 베타 버전입니다

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

신비나라 2년 전 조회 1,958

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

 

</p>

<p>//$wr_1 오픈시간 09:00</p>

<p>//$wr_2 종료시간 23:00</p>

<p>$n_time = date('H:i');</p>

<p>if($wr_1 <= $n_time && $wr_2 >= $n_time) {</p>

<p>$status = "현재 영업시간입니다.";</p>

<p>}</p>

<p>

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트

<?php

$wr_1 = strtotime("10:00"); // 영업 시작 시간

$wr_2 = strtotime("04:00"); // 영업 종료 시간

$n_time = strtotime(date('H:i'));</p>

<p> </p>

<p>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."중입니다.";

?>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

신비나라
2년 전
드디어 되네요 답변 정말 감사합니다. 좋은하루되세요~~~

댓글을 작성하려면 로그인이 필요합니다.

2년 전

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개

신비나라
2년 전
항상 답변 감사합니다~~~

댓글을 작성하려면 로그인이 필요합니다.

들레아빠

</p>

<p>$n_time = date('H:i');</p>

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

    echo '<code>현재 영업시간입니다.</code>';

} else {

    echo '현재 영업 종료되었습니다.';

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

신비나라
2년 전
바쁘신데 답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

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으로 변환도 해봤지만 역시 안되네요...

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토
2년 전

잘 해놓으신것 같은데요

두가지를 체크해보세요

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

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

 

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

</p>

<p><?php

$wr_1 = "09:00";

$wr_2 = "23:00";

$n_time= date("H:i");

echo $wr_1."
";

echo $wr_2."
";

echo $n_time."
";</p>

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

       $status =  "영업시간";

}

else {

    $status = "영업종료시간";

}</p>

<p>echo "현재 ".$status." 입니다.";</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

신비나라
2년 전
양질의 답변 감사합니다~~~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인