很多人想在页面上显示更人性化的时间,像微博等网站会有这种显示方式,几分钟前、几小时前、几天前等等,更加人性化。
这里给大家介绍一下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函数方式,可以做到时间的实时更新,至于怎么使用,就见仁见智了。