我使用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?>
答案 0 :(得分:1)
使用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在On
中必须具有php.ini
值。
答案 1 :(得分:0)
这似乎有效:
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";