phpcms似乎没有自带友好时间格式来显示文章的发布时间,只能比较生硬的显示具体的时间,在今天的开发中,客户有需求,要求显示为几秒前发布,几小时前发布这种形式的时间显示,于是先查询了官方的文档,无果。只能自己动手,写完了记录一下吧。
我习惯在自定义公共函数库创建新的函数,而不是去修改程序自已的global.func.php,这样做的好处是,自已修改过的东西都集中在一起,方便以后维护。
好了,先在自已的公共函数库创建一个函数:
/*
* 自定义函数,用来友好化显示文章的发布时间:例如:几小时前发布,几分钟前发布等等。。。
* @param $time
* @return string
*
* */
function friendTimes($time){
//在show方法中,phpcms自动将两个时间变量updatetime,inputtime转化成了日期格式,所以需要进行转化成unix时间戳
$time = is_numeric($time) ? $time : strtotime($time);
$difftime = time() - intval($time);
while(true){
$day = floor($difftime / 86400);
if($day > 0) return $day.'天前';
$day = floor($difftime / 3600);
if($day > 0) return $day.'小时前';
$day = floor($difftime / 60);
if($day > 0){
return $day.'分钟前';
}else{
return $difftime.'秒前';
}
}
return 0;
}
其实挺简单的,就是判断下文章实际的时间与当前的时间差,然后计算即可。