2017-01-11 5 views
-2

Мне нужно создать php, который генерирует предложение, зависит от времени. Если время 5 - 8, эхо "доброе утро" и так далее ...php - IF - ELSEIF- ELSE

Вот мой код

 <?php 
    if (date('G') <= 5 - 8) 
    { 
    echo "Morning"; 
    } 
    elseif (date('G') = 9 - 12) { 
    echo "LOREM"; 
    } 
    elseif (date('G') = 12) { 
    echo "LOREM"; 
    } 
    elseif (date('G') = 12 - 17) { 
    echo "LOREM"; 
    } 
    elseif (date('G') = 17 - 19) { 
    echo "LOREM"; 
    } 

    else (date('G') >= 20) { 
    echo "NIGHT"; 
    } 

    ?> 

Что случилось _?

+0

Почему вы думаете, что-то не так? Не генерирует ли код ожидаемый результат? Вы получили сообщение об ошибке? Пожалуйста, прочитайте [ask]. –

+1

'5 - 8 = -3' BTW ... – AbraCadaver

+0

' else (date ('G')> = 20) 'является синтаксической ошибкой. У Else нет никаких условий. –

ответ

1

5-8 не «пять-восемь», это «пять минус восемь». Значение - означает вычитание. В PHP нет «сквозного» оператора.

У вас были некоторые противоречивые заявления в вашем примере, поэтому мой не соответствует вашим требованиям, но это должно указывать на вас в правильном направлении.

$hour= date('G'); 
if ($hour >= 5 && $hour <= 8) { 
    echo "Morning"; 
} elseif ($hour >= 9 && $hour < 12) { 
    echo "LOREM"; 
} elseif ($hour == 12) { 
    echo "LOREM"; 
} elseif ($hour > 12 && $hour < 17) { 
    echo "LOREM"; 
} elseif ($hour >= 17 && $hour <= 19) { 
    echo "LOREM"; 
} elseif ($hour >= 20) { 
    echo "NIGHT"; 
} 
+0

На вашем втором elseif должно быть: $ hour == 12 – Callixor

+0

@Callixor Спасибо. Я пропустил это. Вероятно, я должен был написать это с нуля вместо изменения исходного кода. –

0

Использование:

<?php 
if (date('G') >= 5 && date('G') <= 8) 
{ 
echo "Morning"; 
} 
elseif (date('G') >= 9 && date('G') <= 11) 
{ 
echo "LOREM"; 
} 
elseif (date('G') == 12) 
{ 
echo "LOREM"; 
} 
elseif (date('G') >= 13 && date('G') <= 16) 
{ 
echo "LOREM"; 
} 
elseif (date('G') >= 17 && date('G') <= 19) 
{ 
echo "LOREM"; 
} 
elseif (date('G') >= 20) 
{ 
echo "NIGHT"; 
} 
?> 
+0

Вы должны вызывать 'date()' каждый раз, когда хотите получить это значение. Это неэффективно. Вызовите его один раз и сохраните значение переменной. –

+0

Хорошо, ты прав. Это просто пример для него, но вы немного быстрее. ;) – Callixor

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