2012-07-30 3 views
0

저는 현재 이미지 스프라이트 표현을 사용하여 비즈니스가 실시간으로 열리고 닫히는 프로젝트에서 작업하고 있습니다.PHP - 시간 기반의 다른 상태

아래 코드에서 기본 표준 시간대를 GMT로 설정하고 시간 형식을 0000으로 설정합니다.이 값을 테스트 할 때는 0000에서 0959 사이의 값을 제외하고는 괜찮습니다. 시간 형식을 무시하고 선행 0을 표시하지 않는 것으로 보입니다 in.

또한 아래에서보다 효율적인 방법이 있습니까?

미리 감사드립니다. 때문에 주요 0

<?php date_default_timezone_set("Europe/London"); $time = date("Hi");?> 

.<?php if($time > 1600 && $time < 2329){echo "business1";} else{echo "business1:hover";}?> {background: url(http://website.com/business1.png) 0 -145px;} 
.<?php if($time > 1600 && $time < 2329){echo "business1:hover";} else{echo "business1";}?> {background: url(http://website.com/business1.png) 0 0;} 

.<?php if($time > 0800 && $time < 1659){echo "business2";} else{echo "business2:hover";}?> {background: url(http://website.com/business2.png) 0 -145px;} 
.<?php if($time > 0800 && $time < 1659){echo "business2:hover";} else{echo "business2";}?> {background: url(http://website.com/business2.png) 0 0;} 

답변

1

PHP is understood to be an octal number에서 리터럴 0800. 당신은 문자열로 시간을 비교해서는 안됩니다. 시간 비교를 위해 UNIX 타임 스탬프를 사용하십시오 :

$now = time(); 
if ($now > strtotime('16:00') ...) 
+0

이 테스트를 수행했습니다 :'$ i = 0800; echo $ i' 그리고 '0'을 출력하지만, 그것은 '8'이 8 진수로 유효하지 않기 때문입니다. –

+0

@Wouter 정확합니다. – deceze

+0

완벽한, 고마워요 그것은 치료를 deceze. – jamesakers