• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦显示发布时间为多少时间前的实现方法
    POST TIME:2021-05-23 02:34

    织梦的文章发布时间调用格式一般分为一下这些:

    [field:pubdate function="MyDate('Y-m-d',@me)"/]
    2013-12-17
    [field:pubdate function=MyDate('m-d',@me)/]
    12-17
    [field:pubdate function=MyDate('y-m-d',@me)/]
    13-12-17
    [field:pubdate function='strftime("%y-%m-%d %H:%M:%S",@me)'/]
    13-12-17 10:35:21
    [field:pubdate function='strftime("%m-%d %H:%M:%S",@me)'/]
    12-17 10:35:21
    [field:pubdate function='strftime("%y年%m月%d日",@me)'/]
    13年12月17日
    [field:pubdate function='strftime("%Y年%m月%d日 %H点%M分%S秒",@me)'/]
    13年12月17日 12点12分30秒

     

    有的时候,我们想做到不直接显示具体时间,而是以几天前、几月前这样的时间间隔方式来显示, 更利于让访客直观地看到文章的发布时段,以上的调用方法则不适用了。

    教大家如何实现显示发布时间为多少时间前,主要有两种方法。

     

    一、模板直接写PHP语句

    [field:pubdate runphp='yes']
    $today = Floor(time()/(3600 * 24));
    $senday= Floor(@me/(3600 * 24));
    $updays = $today-$senday;
    if($updays >= 30 && $updays < 60) @me="1个月前";
    elseif($updays >= 60 && $updays < 90) @me="2个月前";
    elseif($updays >= 90 && $updays < 120) @me="3个月前";
    elseif($updays >= 120 && $updays < 150) @me="4个月前";
    elseif($updays >= 150 && $updays < 180) @me="5个月前";
    elseif($updays >= 180 && $updays < 210) @me="6个月前";
    elseif($updays >= 210 && $updays < 240) @me="7个月前";
    elseif($updays >= 240 && $updays < 270) @me="8个月前";
    elseif($updays >= 270 && $updays < 300) @me="9个月前";
    elseif($updays > 300 && $updays < 330) @me="10个月前";
    elseif($updays > 330 && $updays < 360) @me="11个月前";
    elseif($updays >= 360) @me="一年前";
    elseif($updays==0) @me = "今日";
    else @me = $updays."天前";
    [/field:pubdate]

     

    二、自定义函数

    在include/extend.func.php文件中加入以下代码:


     

      //文章发布多少时间前
            function tranTime($time) {
            $today = Floor(time()/(3600 * 24));
            $senday= Floor($time/(3600 * 24));
            $updays = $today-$senday;
            if($updays==0)
            $str = '今天';
            elseif ($updays >=1 && $updays < 31) {
                    $str = $updays.'天前 ';
            }
            elseif ($updays >= 31&& $updays < 365) {
                    $m = floor($updays / 31);
                    $str = $m.'月前 ';
            }
                elseif ($updays >= 31&& $updays < 365) {
                    $y = floor($updays / (31* 365));
                    $str = $y.'年前 ';
            }
            else {
                    $str = $rtime;
            }
            return $str;
                                                          }

    如果要显示几分钟和几小时,则自行加入判断函数

            

    elseif ($updays >0 && $updays < 1 ) {
    
            $h = floor($updays * 24);
    
            $str = $h.'小时前 ';
    
            }

     

    调用方法

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

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

     

    以上两种方法都可以实现调用,第一种方法是直接把php语法写入模版中,会显得文件比较冗余,建议使用第二种自定函数的方式,简单明了。

     

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!