0

我目前正在开展一个项目,通过使用它们的图像精灵表示来实时打开和关闭业务。

在下面的代码中,我将默认时区设置为 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;}
4

1 回答 1

1

由于前导0800,PHP中的文字被理解为八进制0。您不应该将时间作为字符串进行比较。使用 UNIX 时间戳进行时间比较:

$now = time();
if ($now > strtotime('16:00') ...)
于 2012-07-30T09:19:05.067 回答