很多人想在页面上显示更人性化的时间,像微博等网站会有这种显示方式,几分钟前、几小时前、几天前等等,更加人性化。
这里给大家介绍一下php语言的使用方式,我们将代码封装成函数,让使用更方便。
把以下的内容复制到 /e/class/userfun.php 文件里,放在<?php和?>之间就可以了。
function diy_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."前";
}
然后在帝国cms模版里放入相应的时间标签。
1、在标签模板、列表模板中的调用:
'.diy_time($r[newstime],0).'
2、在内容页中调用:
<?=diy_time($navinfor[newstime],0)?>
3、在评论JS调用模板调用方法:
在评论JS调用模板把
[!----pltime--]
换成
<?=diy_time($r[saytime],1)?>
然后打开e\pl\more\index.php ,找到:
require("../../class/connect.php");
下一行加入以下代码:
require("../../class/userfun.php");
然后保存。
以上方式适用于帝国cms任何版本,当然最新的7.2版本也不在话下。但本方法有一个缺陷,就是显示的是刷新生成页面时的相对时间,以后会教大家js方式的时间显示,较之于php函数方式,可以做到时间的实时更新,至于怎么使用,就见仁见智了。