2016-11-20 77 views
-1

下面的代碼是爲了向我的訪客展示像「早上好,今天是------和時間-----」如何根據一天的時間打印「早上/下午/晚上」?

但我一直得到「歡迎」而不是主要問候。爲什麼是這樣?

<?php 
$hour = date ("G"); 
$minute = date ("i"); 
$second = date ("s"); 
$msg = " Today is " . date ("l, M. d, Y.") . " And the time is " . date ("g:i a"); 

if ($hour = 00 && $hour <= 9 && $minute <= 59 && $second <= 59) 
{ $greet = "Good Morning,"; } 

else { 

if ($hour >= 10 && $hour <= 11 && $minute <= 59 && $second <= 59) 
{ $greet = "Good Day,"; } 

if ($hour >= 12 && $hour <= 15 && $minute <= 59 && $second <= 59) 
{ $greet = "Good Afternoon,"; } 

if ($hour >= 16 && $hour <= 23 && $minute <= 59 && $second <= 59) 
{ $greet = "Good Evening,"; } 

else { $greet = "Welcome,"; } 
} 
echo $greet.$msg; 
?> 

有關如何完成此任務的任何想法?

如何使用php自動獲取我的訪問者的時區。我的服務器的默認時區是拉各斯/非洲。我希望上面的代碼向我的訪問者展示他們當地的時間和日期。

+1

第一條if語句,使用'<='而不是'=' – Cunning

+0

您正在使用錯誤的等號運算符==不= =如果yiu使用=您正在賦值給var .. – scaisEdge

+0

我已經嘗試過那@Cunning –

回答

1

你的問題是在這裏

if ($hour = 00 && $hour <= 9 && $minute <= 59 && $second <= 59) 

這樣分配00至$小時,所有其他條件失敗

你需要

if ($hour == 0 && $hour <= 9 && $minute <= 59 && $second <= 59) 

解決,如果問題還有其他

你應該記住,php date()函數返回一個字符串 有用於解決你的代碼問題的幾種方式,這些都只是一些建議
所以你應該commpare字符串(未編號),或者使用適當的投

尋找到你,如果你也可避免轉換字符串中的編號爲commparision在檢查分鐘(總是< = 59),這意味着,你的代碼可能是

<?php 

     $hour = date("G"); 
     $minute = date("i"); 
     $second = date("s"); 
     $msg = " Today is " . date("l, M. d, Y.") . " And the time is " . date("g:i a"); 

     if ((int)$hour == 0 && (int)$hour <= 9) { 
      $greet = "Good Morning,"; 
     } else if ((int)$hour >= 10 && (int)$hour <= 11) { 
      $greet = "Good Day,"; 
     } else if ((int)$hour >= 12 && (int)$hour <= 15) { 
      $greet = "Good Afternoon,"; 
     } else if ((int)$hour >= 16 && (int)$hour <= 23) { 
      $greet = "Good Evening,"; 
     } else { 
      $greet = "Welcome,"; 
     } 

     echo $greet.$msg; 
    ?> 
+0

它的工作......謝謝 –

+0

@VickyJane如果我的答案是正確的,請將其標記爲已接受...看到這裏如何 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-回答工作 – scaisEdge

+0

它只適用於早上和晚上! :( –

0

試試這個....

<?php 
    $hour = date ("G"); 
    $minute = date ("i"); 
    $second = date ("s"); 
    $msg = " Today is " . date ("l, M. d, Y.") . " And the time is " . date ("g:i a"); 

    if ($hour == 00 && $hour <= 9 && $minute <= 59 && $second <= 59){ 
     $greet = "Good Morning,"; 
     }else if ($hour >= 10 && $hour <= 11 && $minute <= 59 && $second <= 59){ 
      $greet = "Good Day,"; 
      }else if ($hour >= 12 && $hour <= 15 && $minute <= 59 && $second <= 59){ 
       $greet = "Good Afternoon,"; 
      }else if ($hour >= 16 && $hour <= 23 && $minute <= 59 && $second <= 59){ 
       $greet = "Good Evening,"; 
      }else { 
       $greet = "Welcome,"; 
      } 

     } 

    echo $greet.$msg; 
?> 

我建議你閱讀索姆e tuts

+0

讓我試試。如果有效,我會在明天給你反饋。不管怎麼說,還是要謝謝你 –

相關問題