2016-11-20 2 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

. Вы используете неправильный оператор равенства == not = if yiu use = вы назначаете значение 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; 
?> 

I recomme и вы читали некоторые сообщения

+0

Позвольте мне попробовать. Я дам вам обратную связь завтра, если это сработает. Спасибо, в любом случае –

Смежные вопросы