Loading
0

优化zblog文章及列表页友好显示时间的PHP代码教程

公众号搜索菜鸟站长之家

其实这些细枝末节的事很少有人注意,前几天看公众号的时候看见公众号的时间显示的很好,比如能看到刚刚、10分钟前、昨天、前天等等,这样看上去很舒服有没有,至少我是这么觉得,但是zbp官方给出的代码可以显示部分,但是超过一定时间就显得臃肿,比如,去年发布的就可能会显示“3年前 (2018-06-08)”看着很长,而且在移动端显示并不友好,像之前的主题我还会提议在移动端显示正常的时间,要不小手机根本看不全。

结合zbp官方代码,结果了以上问题,既可以像微信公众号显示的那么完美,超过年限又不会显示那么长,行了,废话少说,附上代码:

function 主题ID_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{内容},这样简单明了,前台都不需要修改了,省时省事。前端调用代码:{主题ID_TimeAgo($article.Time())}

然后后台首页,清空缓存并编译,刷新网页查看效果,代码可能会有更简介的吧,至少我是不会写了,毕竟我从来都是不生产代码,我只是代码的搬运工。

我目前能做的就是把主题细致化,毕竟现在开发者的技术越来越高,我估计快被迫转行了……没办法,技术不够只能细节来凑了,话说新主题快要上架了,目前也是在修改细节,整体的布局都已经完成了,感觉着一路走来,技术的确有所提升,但是明显的感觉到有些吃力,关于文章及列表的友好显示时间代码已经给出,教程结束。

文章声明:
1、本站文章来源于互联网,仅供学习交流使用,严禁用于商业用途,因此造成的一切法律后果自行承担。
2、本站不对文章内容的完整性和安全性负责,请自行辨别,如发现有问题,请及时联系我们进行处理。
3、若文章中有侵权或不适当内容,请留言告知我们,本站会第一时间进行处理。
4、转载请保留原文地址,违者后果自负,本站保留一切法律追责权力。