сторона сервера — обратный отсчет PHP выводит отрицательное значение

Я использую PHP как серверный язык для отображения обратного отсчета. Он работает хорошо (сохраняя ограничение на обратный отсчет времени на стороне сервера), но после истечения срока действия идет обратный отсчет.

Например:

<?php
date_default_timezone_set('Europe/London');
$date = strtotime("November 22, 2017 12:01 AM");
$remaining = $date - time();
$days_remaining = floor($remaining / 86400);
$hours_remaining = floor(($remaining % 86400) / 3600);
$minutes_remaining = floor(($remaining % 3600) / 60);
?>

По завершении 22 ноября обратный отсчет выдаст отрицательные значения. Можете ли вы помочь мне, как скрыть обратный отсчет, как только $date истек?

Я вывожу результат, используя следующий код:

<?php echo $days_remaining?> : <?php echo $hours_remaining?> : <?php echo $minutes_remaining?>

0

Решение

Добавьте простую проверку на позитивность $remainingзначение с использованием если заявление:

date_default_timezone_set('Europe/London');
$date = strtotime("November 22, 2017 12:01 AM");
$remaining = $date - time();

if ($remaining > 0) {
$days_remaining = floor($remaining / 86400);
$hours_remaining = floor(($remaining % 86400) / 3600);
$minutes_remaining = floor(($remaining % 3600) / 60);
}

В выходном файле:

<? if ($remaining > 0) { ?>
<?= $days_remaining ?> : <?= $hours_remaining ?> : <?= $minutes_remaining ?>
<? } ?>

Удобнее использовать синтаксис <?= $var ?> вывести что-то в PHP (опция short_open_tag должен иметь On значение в php.ini).

1

Другие решения

Это похоже на работу:

date_default_timezone_set('Europe/London');
$date = strtotime("November 21, 2017 12:01 AM");
$remaining = $date - time();

if( $remaining >= 0 )
{
$days_remaining = floor($remaining / 86400);
$hours_remaining = floor(($remaining % 86400) / 3600);
$minutes_remaining = floor(($remaining % 3600) / 60);
echo $days_remaining, ":", $hours_remaining, ":", $minutes_remaining;
}
else
echo "Done";
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector