帝国cms实现信息发布时间显示为:几秒前、几分钟前、几天前等人性化时间格式

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

这里给大家介绍一下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函数方式,可以做到时间的实时更新,至于怎么使用,就见仁见智了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值