zblog实现友好时间显示的方法
时间:2022年03月19日
/来源:网络
/编辑:佚名
78模板网今天分享优化zblog文章及列表页友好显示时间的PHP代码
看见worpress以及discuz时间显示的很好,比如能看到刚刚、10分钟前、昨天、前天、几天前、几月前、几年前等等,这样看上去很舒服,至少我是这么觉得,但是zblog官方给出的代码可以显示部分,但是超过一定时间就显得臃肿,比如,去年发布的就可能会显示“3年前 (2018-06-08)”看着很长,而且在移动端显示并不友好,像之前的主题我还会提议在移动端显示正常的时间,要不小手机根本看不全。
今天抽时间百度了一下,结合zbp官方代码,解决以上问题,既可以像微信公众号显示的那么完美,超过年限又不会显示那么长,行了,废话少说,
主题id:78moban为例子
附上代码:
PHP
function 78moban_TimeAgo($ptime){
$now=time();
$ptime = strtotime($ptime);
$day=date('Y-m-d',$ptime);
$today=date('Y-m-d');
$dayArr=explode('-',$day);
$todayArr=explode('-',$today);
//距离的天数,这种方法超过30天则不一定准确,但是30天内是准确的,因为一个月可能是30天也可能是31天
$days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]);
//距离的秒数
$secs=$now-$ptime;
if($todayArr[0]-$dayArr[0]>0 && $days>3){//跨年且超过3天
return date('Y-m-d',$ptime);
}else{
if($days<1){//今天
if($secs<60)return $secs.'秒前';
elseif($secs<3600)return floor($secs/60)."分钟前";
else return floor($secs/3600)."小时前";
}else if($days<2){//昨天
return "昨天";
}elseif($days<3){//前天
return "前天";
}else{//三天前
return date('m-d',$ptime);
}
}
}
完整代码如上,如果主题模板已经有了友好时间,想使用的话,直接把内容复制进去即可,头尾留着function xxx{内容},这样简单明了,前台都不需要修改了,省时省事。
前端调用代码:{78moban_TimeAgo($article.Time())}。
登陆后台首页,清空缓存并编译,刷新网页查看效果。
新闻资讯 更多
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法