2012-09-27 123 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";