我有一个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分钟”的分钟部分?
我希望人们能理解这一点。 提前致谢
卡勒姆
答案 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";
}
我知道这是非常冗长的...为了减少它,我将最后的字符串分成几部分,只打印所需的部分。