Иначе, если в PHP с ограничениями по времени - PullRequest
3 голосов
/ 24 июня 2019

Я пытаюсь получить этот веб-сайт, над которым я работаю, для отображения другой картинки в зависимости от времени суток.Я использую оператор PHP elseif.

Я пытался изменить формат на время на «G», чтобы убрать начальный ноль, я пытался использовать весь день »H:i: s ', и я попытался просто использовать' H ', чтобы получить время для запуска события.

<?php
date_default_timezone_set('America/New_York');
$datetime = new DateTime('now');
$time = $datetime->format('H');
if ($time <= 06 &&$time >= 20) {
  echo '<img src="images/SpringNight.png" class="rounded img-fluid" width="720" height="480">';
}else{
  echo '<img src="images/Spring.png" class="rounded img-fluid" width="720" height="480">';
}
?>

Я пытаюсь получить первый оператор в elseif, который выскочит, когда он между8 вечера и 6 утра.Он просто выводит else в течение всего дня.

Редактировать: Я думаю, что понял.Я пытался использовать "||"вместо «&&», и, похоже, сработало.

<?php
date_default_timezone_set('America/New_York');
$datetime = new DateTime('now');
$time = $datetime->format('H');
if ($time <= 06 || $time >= 20) {
  echo '<img src="images/SpringNight.png" class="rounded img-fluid" width="720" height="480">';
}else{
  echo '<img src="images/Spring.png" class="rounded img-fluid" width="720" height="480">';
}
?>

1 Ответ

1 голос
/ 24 июня 2019

Я бы порекомендовал сделать || (как вы сказали в комментарии) как троичный. И тогда вы можете напечатать свой HTML без эха, использовать переменную $ fileName и не нужно повторять весь HTML дважды.

<?php
date_default_timezone_set('America/New_York');
$datetime = new DateTime('now');
$time = $datetime->format('H');
$fileName = ($time <= 6 || $time >= 20) ? 'SpringNight' : 'Spring';
?>
<img src="images/<?=$fileName?>.png" class="rounded img-fluid" width="720" height="480">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...