2014-08-30 58 views
1

我有以下功能PHP腳本的時間

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和它仍然歸國開放的,我已經經歷了代碼並且似乎無法找到問題。

有人可以看看,看看我的代碼失敗?

+0

'10:00'PM,您輸入的收盤'22'? – Ghost 2014-08-30 05:19:05

+0

當我調用它寫入狀態的函數(10,12,22)。但由於某種原因,它正在註冊最後的其他聲明。 – Jdoonan 2014-08-30 05:21:19

+0

你的PHP服務器在什麼時區?可能需要對時區或夏令時進行調整。 – 2014-08-30 05:22:14

回答

2

嘗試在收盤使用>=

if(date('H') < $open || date('H') >= $close) 
{ 
    $GLOBALS['status'] = "Closed"; 
    $GLOBALS['color'] = "rgba(255,0,0,1)"; 
} 

發生了什麼事是你設置10:00 PM這是22。如果當前時間是10:13,但仍不大於22。這就是爲什麼它沒有通過這個條件。應該大於或等於,然後關閉。

+1

當我最初編寫腳本時,我已經放入了等號,但是當我今天下午編輯它時,我必須刪除它。謝謝你指出我的錯誤 – Jdoonan 2014-08-30 05:32:50

0

請確保您有正確的時區設置,在PHP支持時區

date_default_timezone_set('Asia/Colombo'); 

名單可以發現here

+0

時區在我的.user.ini文件中設置爲美國/溫哥華服務器 – Jdoonan 2014-08-30 05:23:16

+0

您是否在PHP代碼中嘗試過使用它? – 2014-08-30 05:26:51

1

試試這個

function status($open, $lunch, $close) 
{ 
    $hour = date('H'); 
    $minute = date('i'); 

    if($hour < $open || $hour >= $close) 
    { 
     $GLOBALS['status'] = "Closed"; 
     $GLOBALS['color'] = "rgba(255,0,0,1)"; 
    } 
    else if($hour==$lunch) 
    { 
     $GLOBALS['status'] = "Lunch"; 
     $GLOBALS['color'] = "rgba(0,0,255,1)"; 
    } 
    else 
    { 
     $GLOBALS['status'] = "Open"; 
     $GLOBALS['color'] = "green"; 
    } 

    if($hour == ($close-1) && $minute>29) 
    { 
     $GLOBALS['status'] = "Closing"; 
     $GLOBALS['color'] = "rgba(255,255,0,1)"; 
    } 
} 

注:還設置默認的時區像

date_default_timezone_set('your timezone'); 
//example 
date_default_timezone_set('Asia/Kolkata');