您不想显示20:00之间箱子01:00
目前在if($now > $start AND $now < $end)
你的逻辑有点混乱。
如果你希望$start = 20
和$end = 1
,那么什么样的价值是$now
可能超过20
并小于1
。
你的if语句逻辑会经常去ELSE
任何的$now
值。
但还有另一种解决方法来切换这样的逻辑。
您想显示02:00之间的箱至19:00
,而不是周围的其他方法。
所以,你可以做到这一点,
$start = "20";
$end = "01";
$now = date('H');
if ($now > $end && $now < $start)
{
echo "SHOW THE BOX";
}
else
{
echo "DON'T SHOW";
}
更新1:
现在,你不想展示20:00之间的箱至22:00
你可以做反之亦然,或者你现在的逻辑是什么。像,
$start = "20";
$end = "22";
$now = date('H');
if ($now >= $start && $now <= $end)
{
echo "DON'T SHOW";
}
else
{
echo "SHOW THE BOX";
}
更新2:
如果$start
或$end
变化,你可以随时如果条件包裹他们在另一个。像,
if ($start > $end)
{
if ($now > $end && $now < $start)
{
echo "SHOW THE BOX";
}
else
{
echo "DON'T SHOW";
}
}
else if ($start < $end)
{
if ($now >= $start && $now <= $end)
{
echo "DON'T SHOW";
}
else
{
echo "SHOW THE BOX";
}
}
你的代码应该可以正常工作。但是你总是可以像'(int)$ start'那样对它进行类型转换,或者你也可以使用'intval($ start)'。 – choz
嗨choz,是代码工作,但问题是当它在20和01之间,我希望它不显示任何东西。如果我测试20和01之间的if函数,它将打印“显示盒子”,它应该打印“不显示盒子”。我会尝试你的建议。 –
我明白你的意思。检查答案。 – choz