温馨提醒

如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢

本文最后更新于2023年8月15日,已超过 180天没有更新

dedecms实现XX秒前、XX分钟前、xx天前、XX周前、XX月前、XX年前的时间差显示 在新浪微博首页看到每条微博后边显示的时间并不是标准的年-月-日格式,而是经过换算的时间差,如:发表于5分钟前、发表于“2小时前”,比起标准的时间显示格式,貌似更加直观和人性化。

打开 /include/extend.func.php 在最下面加入个方法

/**
 *  时间美化
 *
 * @access    public
 * @param     string  $time  	时间戳
 * @return    string
 */
if(!function_exists('tranTime'))
{
    function tranTime($time)
    {
        $rtime = date("m-d H:i",$time);
        $htime = date("H:i",$time);
        $etime = time() - $time;
        if ($etime < 1) return '刚刚';
        $interval = array (
            12 * 30 * 24 * 60 * 60  =>  ' 年 前',
            30 * 24 * 60 * 60       =>  ' 个 月 前',
            7 * 24 * 60 * 60        =>  ' 周 前',
            24 * 60 * 60            =>  ' 天 前',
            60 * 60                 =>  ' 小 时 前',
            60                      =>  ' 分 钟 前',
            1                       =>  ' 秒 前'
        );
        foreach($interval as $secs => $str)
        {
            $d = $etime / $secs;
            if($d >= 1)
            {
                $r = round($d);
                return $r . $str;
            }
        };
    }
}

调用标签写法

首页/列表页[field:pubdate function="tranTime(@me)"/]

内容页{dede:field.pubdate function="tranTime(@me)"/}

如果你的时间格式是 2018-10-10 这种正常时间,那要这样写调用标签

[field:pubdate function="tranTime(GetMkTime(@me))"/]

{dede:field.pubdate function="tranTime(GetMkTime(@me))"/}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。