我正在编写一些PHP代码,用于根据存储在mysql表中的时间显示“1分钟”,“2分钟”,“3小时”等时间,并与当前时间进行比较。我目前的代码如下:
$dif = (strtotime("-0 minutes") - strtotime($time))/60;
if($dif < 1){
return "Just Now";
}elseif($dif < 2){
return round($dif, 0, PHP_ROUND_HALF_DOWN) . " Min";
}elseif($dif < 60){
return round($dif, 0, PHP_ROUND_HALF_DOWN) . " Mins";
}elseif($dif/60 < 2){
return round($dif/60, 0, PHP_ROUND_HALF_DOWN) . " Hour";
}elseif($dif/60 < 24){
return round($dif/60, 0, PHP_ROUND_HALF_DOWN) . " Hours";
}elseif($dif/1440 < 2){
return round($dif/1440, 0, PHP_ROUND_HALF_DOWN) . " Day";
}elseif($dif/1440 < 4){
return round($dif/1440, 0, PHP_ROUND_HALF_DOWN) . " Days";
}else{
$datepieces = explode(" ", $time);
$date = date("j F, Y", strtotime($datepieces[0]));
return $date;
}
然而,我的问题是,当定时器从“1分钟”切换到“2分钟”时,持续约30秒的时间,将返回“2分钟”。任何人都可以帮助发现我在舍入中犯的错误会导致这种情况发生吗?
答案 0 :(得分:0)
请尝试floor
?
$dif = (strtotime("-0 minutes") - strtotime($time))/60;
if($dif < 1){
return "Just Now";
}elseif($dif < 2){
return floor($dif) . " Min";
}elseif($dif < 60){
return floor($dif) . " Mins";
}elseif($dif/60 < 2){
return floor($dif/60) . " Hour";
}elseif($dif/60 < 24){
return floor($dif/60) . " Hours";
}elseif($dif/1440 < 2){
return floor($dif/1440) . " Day";
}elseif($dif/1440 < 4){
return floor($dif/1440) . " Days";
}else{
$datepieces = explode(" ", $time);
$date = date("j F, Y", strtotime($datepieces[0]));
return $date;
}