菜鸟科技网

织梦调用发布时间代码是什么?

在织梦(DedeCMS)系统中,调用发布时间是网站内容展示中非常常见的需求,无论是文章列表、首页焦点图还是内页详情,准确调用并格式化发布时间都能提升用户体验和网站的专业性,本文将详细解析织梦调用发布时间的多种方法,包括基础调用、自定义格式调用、不同场景下的调用技巧以及常见问题的解决方案。

织梦调用发布时间代码是什么?-图1
(图片来源网络,侵删)

基础调用方法:默认时间格式

织梦默认提供了简单的发布时间调用标签,适用于大多数基础场景,在文章列表页(如arclist标签)或内容页(如article标签)中,可直接使用[field:pubdate]来调用发布时间,该标签默认输出的格式为“Y-m-d H:i:s”,即“年-月-日 时:分:秒”,2023-10-01 12:30:45”,这种调用方式无需额外配置,适合对时间格式无特殊要求的场景。

自定义时间格式调用

实际网站开发中,往往需要根据设计需求调整时间格式,例如只显示日期、只显示时间,或调整为“年月日”等中文格式,织梦支持通过strftime函数自定义时间格式,具体语法为[field:pubdate function="strftime('格式',@me)"/],以下是常用格式示例及说明:

格式字符 说明 示例输出
%Y 四位年份 2023
%m 两位月份 10
%d 两位日期 01
%H 24小时制小时 12
%I 12小时制小时 12
%M 分钟 30
%S 45
%b 月份英文缩写 Oct
%B 月份英文全称 October
%p 上下午标识 AM/PM
%Y年%m月%d日 中文格式 2023年10月01日

调用“年-月-日”格式可使用[field:pubdate function="strftime('%Y-%m-%d',@me)"/],调用“月日”格式可使用[field:pubdate function="strftime('%m-%d',@me)"/],需要注意的是,自定义格式时需确保引号使用正确,且@me代表当前字段的原始值。

不同场景下的调用技巧

  1. 文章列表页调用
    arclist标签中调用发布时间时,需将时间标签放在arclist内。

    织梦调用发布时间代码是什么?-图2
    (图片来源网络,侵删)
    {dede:arclist titlelen='50' row='10'}
    <li><a href="[field:arcurl/]">[field:title/]</a> - [field:pubdate function="strftime('%Y-%m-%d',@me)"]</li>
    {/dede:arclist}

    此处通过titlelen长度,row控制显示数量,时间格式调整为“年-月-日”。 页调用**
    在文章内容页(如article_article.htm模板),可直接使用[field:pubdate/]或自定义格式调用,若需调用更新时间,可使用[field:uptime function="strftime('%Y-%m-%d',@me)"/]

  2. 首页调用最新文章时间
    首页调用最新文章时间时,可在首页模板使用{dede:arclist row='1' titlelen='20'}[field:pubdate function="strftime('%Y-%m-%d',@me)"]{/dede:arclist},仅显示最新一篇文章的时间。

  3. 调用“X天前”等相对时间
    若需显示“3天前”“1小时前”等相对时间,需结合PHP函数实现,可自定义一个函数,例如在include/extend.func.php中添加:

    function timeformat($time) {
        $diff = time() - $time;
        if ($diff < 3600) {
            return floor($diff / 60) . '分钟前';
        } elseif ($diff < 86400) {
            return floor($diff / 3600) . '小时前';
        } else {
            return floor($diff / 86400) . '天前';
        }
    }

    然后在模板中调用:[field:pubdate function="timeformat(@me)"/]

    织梦调用发布时间代码是什么?-图3
    (图片来源网络,侵删)

常见问题及解决方案

  1. 时间显示为1970年或乱码
    原因通常是数据库中pubdate字段存储为时间戳,但模板调用时未正确解析,可尝试强制转换为时间戳格式:[field:pubdate function="date('Y-m-d',@me)"/],若问题依旧,需检查数据库字段类型是否为int(时间戳)或datetime,并确保数据录入时格式正确。

  2. 自定义格式不生效
    strftime函数调用后显示原始时间戳,可能是服务器环境不支持该函数,可改用date函数:[field:pubdate function="date('Y-m-d',@me)"/],同时需确认模板标签是否正确闭合,如引号、斜杠等符号是否遗漏。

相关问答FAQs

问题1:如何在织梦列表页调用“发布时间+更新时间”?
解答:在arclist标签中同时调用pubdateuptime字段,

{dede:arclist row='5'}
<p>发布:[field:pubdate function="strftime('%Y-%m-%d',@me)"] | 更新:[field:uptime function="strftime('%Y-%m-%d',@me)"]</p>
{/dede:arclist}

可根据需求调整格式或分隔符。

问题2:织梦调用时间时如何去掉前导零(如“10月”显示为“10月”而非“10月”)?
解答:使用date函数并自定义格式,[field:pubdate function="date('n月j日',@me)"/],其中n表示不带前导零的月份,j表示不带前导零的日期,输出结果为“10月1日”。

分享:
扫描分享到社交APP
上一篇
下一篇