在使用帝国CMS 7.2时,如何实现时间显示为“几小时前”、“几天前”等相对时间格式?这种功能可以显著提升用户体验,使时间信息更加直观。以下是具体实现方法。

首先,您需要将以下代码添加到userfun.php文件中。该文件位于帝国CMS的e/class目录下。确保代码放置在<?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 . "前";
}
    

上述代码定义了一个名为user_time的函数,用于计算并返回相对时间格式。接下来,在不同的模板中调用此函数即可。

对于列表模板,您可以这样调用:


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

如果您不熟悉如何在列表模板中放置代码,请参考其他用户的提示(例如,wareelll 在11楼的说明)。

对于内容模板,调用方式如下:


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

完成以上步骤后,您的网站将能够以更友好的方式展示时间信息,如“几分钟前”或“几天前”。这不仅提升了用户体验,还让页面显得更加现代化和专业。

注意:在实际操作中,请确保备份原始文件,以防出现意外情况。此外,根据您的具体需求,还可以进一步调整代码逻辑或样式。


希望这篇文章对您有所帮助!如果您有任何问题或需要进一步的帮助,请随时提问。