PHP倒计时输出负值

PHP countdown outputs negative value

我使用 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);
?>

一旦 11 月 22 日结束,倒计时将输出负值。你能帮我看看 $date 过期后如何隐藏倒计时吗?

我正在使用以下代码输出结果:

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

这似乎有效:

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";

使用 if statement:

添加对 $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 必须在 php.ini 中具有 On 值)。