我正在编写一些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 分钟"。任何人都可以帮助发现我在四舍五入中犯的错误,从而导致这种情况发生?
试试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;
}