2012-09-27 121 views
0

我對目前一些PHP代碼,似乎邏輯日期及如果else語句PHP

$tod = date("G"); 
if($tod >= 5 && $tod <= 11)  { $work = "Morning's"; } 
elseif($tod >= 12 && $tod <= 17) { $work = "Afternoon's"; } 
else        $work = "Evening's"; 

$dw = date("l"); 

if($work = "Morning's")  { $pre = "Morning"; } 
elseif($work = "Afternoon's") { $pre = "Afternoon"; } 
else       $pre = "Evening"; 

工作,出於某種原因,如果我嘗試當我在每個範圍內增加或設置$ TOD變量做某件事情回聲$工作它總是返回「早上」,無論$ tod設置爲。我的if..elseif..else語句有問題嗎?我在加載頁面時沒有收到任何錯誤。

感謝您的幫助

+0

正如一邊,爲什麼你在這裏使用兩個'if'塊?爲什麼不在'$ work'的同一時間分配'$ pre'?另外,拿出''s出來;) – slugonamission

回答

0

試試這個,你必須忘記「=」兩種,如果

$tod = date("G"); 
    if($tod >= 5 && $tod <= 11) {$work = "Morning's";} 
    elseif($tod >= 12 && $tod <= 17) {$work = "Afternoon's";} 
    else $work = "Evening's"; 
    $dw = date("l"); 
    if($work == "Morning's"){$pre = "Morning";} 
    elseif($work == "Afternoon's"){$pre = "Afternoon";} 
    else $pre = "Evening"; 
+0

啊,這是非常感謝你亞歷山德羅。 –

0

只是爲了縮短一個豆蔻(並糾正拼寫:複數W/O '):

$pre = "Evening"; 
in_array(date("G"), range(5, 11)) AND $pre = "Morning"; 
in_array(date("G"), range(12, 17)) AND $pre = "Afternoon"; 
$work = "{$pre}s";