2012-07-30 65 views
0

我目前正在通過使用它們的圖像精靈表示來實時打開和關閉業務。PHP - 基於時間的不同狀態

在下面的代碼中,我將默認時區設置爲GMT,將時間格式設置爲0000.當測試時,除了0000和0959之外,它是很好的。它似乎忽略了時間格式並且沒有放置前導零英寸

此外,有沒有一個更有效的方式做下面?

在此先感謝。

<?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由於領先0。你不應該比較時間作爲字符串開始。使用UNIX時間戳進行時間比較:

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

我做了這個測試:'$ i = 0800; echo $ i'並輸出'0',但這是因爲'8'在八進制數中無效。 – 2012-07-30 09:27:09

+0

@Wouter確實如此。 – deceze 2012-07-30 09:27:38

+0

完美,謝謝欺騙它的作品。 – jamesakers 2012-07-30 11:02:50