영업시간인지 아닌지 어떻게 확인할 수 있을까요?
본문
어떤사업장이 오픈시간이 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으로 변환도 해봤지만 역시 안되네요...