如何在AnQiCMS模板中将时间戳转换为指定日期格式显示?

📅 👁️ 67

在安企CMS的模板设计中,我们经常会遇到需要将时间戳数据以人类可读的日期格式展现出来的情况。无论是文章的发布时间、内容的更新日期,还是用户活动的记录,这些数据在数据库中通常以时间戳的形式存储。为了让网站访客能够清晰直观地了解到这些信息,掌握如何在模板中将时间戳转换为指定日期格式就显得尤为重要。

AnQiCMS中的时间戳:数据从何而来

在AnQiCMS中,您会发现很多与时间相关的数据字段都以时间戳的形式存在,例如文章详情标签(archiveDetail)和文章列表标签(archiveList)中的CreatedTime(创建时间)和UpdatedTime(更新时间),以及评论列表标签(commentList)中的CreatedTime,还有用户详情标签(userDetail)中的LastLogin(上次登录时间)和ExpireTime(VIP到期时间)等。这些时间戳通常是一个10位的整数,代表着自Unix纪元(1970年1月1日00:00:00 UTC)以来经过的秒数。

直接显示这些10位数字对于普通用户来说毫无意义,因此我们需要将它们转换为“2023年3月15日”、“昨天 14:30”或者“03-15”等易于理解的格式。

核心功能:stampToDate 标签登场

AnQiCMS为此提供了一个专门的模板标签——stampToDate,它能够轻松地将时间戳转换为您想要的日期格式。这个标签的使用方式非常直观,只需要提供两个参数:您想要转换的时间戳,以及一个定义输出格式的字符串。

其基本语法是:{{stampToDate(您的时间戳变量, "您的格式字符串")}}

理解这两个参数是成功转换的关键。

  1. 您的时间戳变量:这里通常是您通过其他标签(如archiveListarchiveDetail)获取到的数据字段,比如item.CreatedTimearchive.UpdatedTime。请注意,它必须是一个10位的Unix时间戳(秒级)。

  2. 您的格式字符串:这是决定日期输出格式的“魔法咒语”。AnQiCMS基于Go语言开发,因此这里的格式字符串遵循Go语言特有的日期格式化标准。这个标准使用一个特定的参考日期——2006年01月02日 15时04分05秒 -0700 MST(或者简单记作 2006-01-02 15:04:05)来作为格式化的模板。您需要将这个参考日期中的各个组成部分替换成您希望显示实际日期对应的值。

    例如:

    • 2006 代表年份(四位数)
    • 01 代表月份(两位数,不足补零)
    • 02 代表日期(两位数,不足补零)
    • 15 代表小时(24小时制,两位数,不足补零)
    • 04 代表分钟(两位数,不足补零)
    • 05 代表秒(两位数,不足补零)

    通过组合这些“魔法数字”,您可以创建出各种各样的日期格式。

如何使用 stampToDate 标签

让我们通过几个具体的例子来了解如何在AnQiCMS模板中运用stampToDate标签。假设我们有一个时间戳 1678886400,它对应的是 2023-03-15 00:00:00

  • 显示为“年-月-日”

    <p>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</p>
    {# 输出: 发布日期:2023-03-15 #}
    
  • 显示为“年月日时分秒”

    <p>更新时间:{{stampToDate(archive.UpdatedTime, "2006年01月02日 15时04分05秒")}}</p>
    {# 输出: 更新时间:2023年03月15日 00时00分00秒 #}
    
  • 显示为“月/日 时:分”

    <p>登录时间:{{stampToDate(user.LastLogin, "01/02 15:04")}}</p>
    {# 输出: 登录时间:03/15 00:00 #}
    
  • 显示为纯年份

    <p>版权年份:{{stampToDate(someTimestamp, "2006")}}</p>
    {# 输出: 版权年份:2023 #}
    

常见应用场景示例

stampToDate标签集成到实际模板中,能极大地提升信息呈现的专业度。

  1. 在文章列表页显示文章发布日期: 当您使用archiveList标签循环输出多篇文章时,可以这样展示每篇文章的发布时间:

    {% archiveList archives with type="page" limit="10" %}
        {% for item in archives %}
            <div>
                <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
                <p>发布于:<span>{{stampToDate(item.CreatedTime, "2006年01月02日")}}</span></p>
                <p>{{item.Description}}</p>
            </div>
        {% endfor %}
    {% endarchiveList %}
    
  2. 在文章详情页显示内容的更新时间: 在文章详情页中,您可能需要显示文章的创建时间和最新的更新时间,以便读者了解内容的及时性:

    <article>
        <h1>{% archiveDetail with name="Title" %}</h1>
        <p>
            <span>发布日期:{{stampToDate(archive.CreatedTime, "2006-01-02")}}</span>
            <span>最后更新:{{stampToDate(archive.UpdatedTime, "2006-01-02 15:04")}}</span>
        </p>
        <div class="content">
            {%- archiveDetail articleContent with name="Content" %}
            {{articleContent|safe}}
        </div>
    </article>
    

    这里我们假设archive是当前文章详情的数据对象。

  3. 显示用户相关的时间信息: 如果您的网站有用户中心,可能需要显示用户的VIP到期时间:

    {% userDetail user with name="Id" id="当前用户ID" %}
    <p>您的VIP将于:<span>{{stampToDate(user.ExpireTime, "2006年01月02日")}}</span> 到期。</p>
    {% enduserDetail %}
    

    当然,在实际使用时,您需要根据实际页面上下文获取user.ExpireTime这个时间戳变量。

一个小提醒:date 过滤器与 stampToDate 的区别

AnQiCMS的模板系统中,除了stampToDate标签,您可能还会看到一个名为date的过滤器。这里需要特别注意,date过滤器是Go语言模板引擎原生支持的,它期望处理的是Go语言原生的time.Time类型(一种日期时间对象),而不是我们此处讨论的10位Unix时间戳(整数)。

如果您尝试将一个时间戳直接传递给date过滤器,模板解析时很可能会报错。stampToDate标签

相关文章

如何确保AnQiCMS后台设置的自定义参数能在前端模板中显示?

安企CMS赋予了内容管理极高的灵活性,其中自定义参数功能更是满足个性化内容展示需求的关键。当您在后台为文章、产品或分类等内容模型设置了独有的参数后,如何将这些参数准确无误地呈现在网站前台模板中,是许多用户关心的问题。这篇文章将详细阐述这一过程,帮助您充分利用安企CMS的强大定制能力。 ### 了解自定义参数的奥秘 首先,要确保自定义参数能在前端模板中显示

2025-11-07

AnQiCMS如何实现关键词的批量替换,并影响前端内容显示?

在网站运营中,保持内容的准确性、时效性及品牌一致性至关重要。尤其是当网站内容量庞大时,若需对特定关键词或短语进行全局性修改,手动操作将是一项耗时耗力的巨大工程。AnQiCMS(安企CMS)正是洞察到这一需求,提供了一项名为“全站内容替换”的强大功能,帮助用户高效管理和更新网站内容,进而影响前端内容的显示效果。 ### 为什么需要批量替换关键词? 随着企业发展、产品更新或市场策略调整

2025-11-07

如何在文章详情页显示文章内容的内部标题(H1, H2等)列表?

在安企CMS中,为了提升长篇文章的阅读体验和页面SEO效果,我们通常希望能在文章详情页的侧边或文章内容上方,展示一个内部标题(H1、H2等)的列表,也就是我们常说的文章目录或导航。这不仅方便读者快速跳转到感兴趣的章节,也让搜索引擎更好地理解文章结构。 安企CMS提供了非常便捷的方式来实现这一功能,核心在于其强大的模板标签和内容字段提取能力。 ###

2025-11-07

AnQiCMS如何显示当前模型的名称或URL别名?

在网站内容管理中,我们经常需要让网站的各个部分都能够智能地适应和展示信息,其中一个常见的需求就是如何在前端页面动态地显示当前内容模型的名称或者其URL别名。这对于提升用户体验、优化搜索引擎表现以及灵活管理网站结构都至关重要。AnQiCMS作为一个专注于企业级内容管理的系统,提供了非常灵活且强大的模板标签功能,使得实现这一目标变得直观且高效。 ###

2025-11-07

如何在文章列表中显示分类的缩略图和名称?

## 安企CMS:在文章列表中优雅地展示分类缩略图与名称 在网站运营中,文章列表页是用户浏览内容、发现信息的重要入口。一个设计精美、信息丰富的文章列表不仅能提升用户体验,还能有效引导用户深入阅读。传统的文章列表可能仅显示标题、发布时间、摘要等信息,显得有些单调。如果能在每篇文章旁边,直观地展示其所属分类的缩略图和名称,无疑会为网站增添更多视觉吸引力,并帮助用户快速理解内容归属

2025-11-07

AnQiCMS如何将文本中的URL字符串自动解析成可点击的链接?

在日常的内容运营中,我们经常需要在文章、产品描述、甚至是分类简介等文本内容中嵌入各种外部或内部链接。然而,手动将这些纯文本的URL字符串一一转换为可点击的HTML链接,不仅费时费力,还容易因疏忽而出现链接错误,影响用户体验和搜索引擎优化。 AnQiCMS 深知这一痛点,因此提供了一套巧妙而高效的机制,能够智能地识别文本中的URL字符串,并将其自动解析为带有正确HTML标签的可点击链接

2025-11-07

如何在AnQiCMS模板中显示文章的浏览量和评论数量?

在网站运营中,文章的浏览量和评论数量是衡量内容受欢迎程度和用户参与度的重要指标。AnQiCMS 提供了灵活的模板标签功能,让您能够轻松地在网站前台展示这些关键数据,从而更好地吸引访客、提升内容价值。 ### 核心功能概览:了解浏览量与评论数 在 AnQiCMS 中,每篇文章都伴随着一些元数据,其中就包括了文章的浏览量(Views)和评论数量(CommentCount)

2025-11-07

AnQiCMS如何通过模板标签自定义显示图片轮播(Banner)?

AnQiCMS 作为一个高效、可定制的企业级内容管理系统,在内容展示的灵活性上有着显著优势。对于网站中常见的图片轮播(Banner)功能,AnQiCMS 提供了多种通过模板标签自定义显示的方式,让您能够根据不同页面和业务需求,轻松实现丰富多样的 Banner 展示效果。 ### 理解 AnQiCMS 的 Banner 管理机制 在 AnQiCMS 中,图片轮播的实现并非单一路径

2025-11-07