PHP倒计时时钟错误

时间:2011-03-31 21:55:18

标签: php

我有一个PHP倒计时时钟,我将把它放在我的网站上,但我正在努力调试一些错误。当时钟显示1分钟时,它仍然显示“1分钟”(以分钟为单位注意S)并且还显示“0分钟”。我在下面发布了我的代码副本。

<?php

countdown(2011,6,7,7,31,0);

function countdown($year, $month, $day, $hour, $minute){
$the_countdown_date=mktime($hour, $minute, 0, $month, $day, $year, -1);
$today=time();
$difference=$the_countdown_date - $today;
$days=floor($difference/60/60/24);
$hours=floor(($difference - $days*60*60*24)/60/60);
$minutes=floor(($difference - $days*60*60*24 - $hours*60*60)/60);
echo "$days days $hours hours $minutes minutes";
}

?>

有什么方法可以让它说“1分钟”并且不显示“0分钟”的分钟部分?

我希望人们能理解这一点。 提前致谢

卡勒姆

3 个答案:

答案 0 :(得分:1)

创建一个&#34; s&#34;或&#34;&#34;取决于相应天数/小时/分钟的值:

$days_s = $days == 1 ? "" : "s";
$hours_s = $hours == 1 ? "" : "s";
$minutes_s = $minutes == 1 ? "" : "s";
return "$days day$days_s $hours hour$hours_s $minutes minute$minutes_s";

答案 1 :(得分:0)

添加(在顶部)

function nicefmt($n,$s,$trail=" "){
if($n==0) return "";
if($n==1) return "$n $s".$trail;
return "$n ".$s."s".$trail;
}

和替换

echo "$days days $hours hours $minutes minutes";

echo nicefmt($days,"day").nicefmt($hours,"hour").nicefmt($minutes,"minute","");

答案 2 :(得分:0)

只需输入一个if语句:

if ($minutes == 1) {
    echo "$days days $hours hours $minutes minute";
} else if ($minutes == 0) {
    echo "$days days $hours hours";
} else {
  echo "$days days $hours hours $minutes minutes";
}

我知道这是非常冗长的...为了减少它,我将最后的字符串分成几部分,只打印所需的部分。