要在帝国CMS中实现时间显示为“几小时前”、“几天前”等格式,可以通过自定义函数来完成。以下是具体的步骤和代码示例。
步骤
- 编写自定义函数:将自定义函数写入
userfun.php
文件中。 - 调用函数:在列表模板和内容模板中调用该函数。
自定义函数
将以下代码放入 userfun.php
文件中:
<?php
// 自定义时间显示函数
function user_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 . "前";
}
?>
调用函数
列表模板调用
在列表模板中调用该函数:
html'.user_time($r[newstime], 0).'
这里的 $r[newstime]
是当前记录的时间字段。
内容模板调用
在内容模板中调用该函数:
html<?=user_time($navinfor[newstime], 0)?>
这里的 $navinfor[newstime]
是当前记录的时间字段。