帝国cms实现信息发布时间显示为:几秒前、几分钟前、几天前


avatar
pcwnas 2023-04-21 265

很多人想在页面上显示更人性化的时间,像微博等网站会有这种显示方式,几分钟前、几小时前、几天前等等,更加人性化。

这里给大家介绍一下php语言的使用方式,我们将代码封装成函数,让使用更方便,下面是代码:

function cmsdx_time($tm,$num) {  if($num==1){     $tm =  strtotime($tm);  }      $cur_tm = time(); $dif = $cur_tm-$tm;     $pds = array('秒','分钟','小时','天','周','个月','年');     $lngh = array(1,60,3600,86400,604800,2630880,31570560);     for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);     $no = floor($no);      $x=sprintf("%d%s",$no,$pds[$v]);     return $x."前";  }  

我们可以将函数存储在userfun.php文件中,也可以单独存在其他文件中引入。

接下来按照下面的方式引用函数即可。

列表模板调用:

'.cmsdx_time($r[newstime],0).' 

内容模板调用:

<?=cmsdx_time($navinfor[newstime],0)?>

以上方式适用于帝国cms任何版本,当然最新的7.2版本也不在话下。但本方法有一个缺陷,就是显示的是刷新生成页面时的相对时间,以后会教大家js方式的时间显示,较之于php函数方式,可以做到时间的实时更新,至于怎么使用,就见仁见智了。