DEDECMS后台会员消费记录人性化时间显示不准的解决方法


EDECMS的后台会员消费记录存在BUG,在消费时间后边跟随的人性化时间不准确,一年前的单子也显示几天前。需要进行修改。

 

1、打开include/helpers/time.helper.php,找到

 

 

function FloorTime($seconds) 
    { 
        $times = ''; 
        $days = floor(($seconds/86400)%30); 
        $hours = floor(($seconds/3600)%24); 
        $minutes = floor(($seconds/60)%60); 
        $seconds = floor($seconds%60); 
        if($seconds >= 1) $times .= $seconds.'秒'; 
        if($minutes >= 1) $times = $minutes.'分钟 '.$times; 
        if($hours >= 1) $times = $hours.'小时 '.$times; 
        if($days >= 1)  $times = $days.'天'; 
        if($days > 30) return false; 
        $times .= '前'; 
        return str_replace(" ", '', $times); 
    }

替换为以下代码即可:

 

 

function FloorTime($date) { 
$str = ''; 
$timer = $date; 
$diff = $_SERVER['REQUEST_TIME'] - $timer; 
$day = floor($diff / 86400); 
$free = $diff % 86400; 
if($day > 0) { 
return $day."天前"; 
}else{ 
if($free>0){ 
$hour = floor($free / 3600); 
$free = $free % 3600; 
if($hour>0){ 
return $hour."小时前"; 
}else{ 
if($free>0){ 
$min = floor($free / 60); 
$free = $free % 60; 
if($min>0){ 
return $min."分钟前"; 
}else{ 
if($free>0){ 
return $free."秒前"; 
}else{ 
return '刚刚'; 
} 
} 
}else{ 
return '刚刚'; 
} 
} 
}else{ 
return '刚刚'; 
} 
} 
}

 

 

2、打开后台管理目录下的templets/member_operations.htm,找到

 

(<font color="#FF0000">{dede:field.mtime function="floorTime(time()-@me,@me)"/}</font>)

 

替换为:

 

(<font color="#FF0000">{dede:field.mtime function="floorTime(@me)"/}</font>)

 

更改完毕。