【发布时间】:2014-08-30 05:15:48
【问题描述】:
我有以下功能
function status($open, $lunch, $close)
{
if(date('H') < $open || date('H') > $close)
{
$GLOBALS['status'] = "Closed";
$GLOBALS['color'] = "rgba(255,0,0,1)";
}
elseif(date('H') == ($close-1))
{
if(date('i') > 29)
{
$GLOBALS['status'] = "Closing";
$GLOBALS['color'] = "rgba(255,255,0,1)";
}
else
{
$GLOBALS['status'] = "Open";
$GLOBALS['color'] = "rgba(0,255,0,1)";
}
}
else
{
if(date('H') == $lunch)
{
$GLOBALS['status'] = "Lunch";
$GLOBALS['color'] = "rgba(0,0,255,1)";
}
else
{
$GLOBALS['status'] = "Open";
$GLOBALS['color'] = "green";
}
}
}
晚上 10:00 之后它应该返回关闭状态,现在是 10:13 并且它仍然返回打开状态,我查看了代码,似乎找不到问题。
有人可以看看我的代码哪里出错了吗?
【问题讨论】:
-
10:00PM,你在关闭时输入了22? -
当我调用该函数时,它被写入 status(10,12,22)。但由于某种原因,它正在注册最后的 else 语句。
-
你的 php 服务器在哪个时区?可能需要调整时区或夏令时。
-
@GaryHayes 时区是正确的,当我让服务器返回时间时,它会返回我期望的时间
-
嵌套 if else 语句看起来有问题