您不想顯示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