AnQiCMS如何格式化时间戳并显示成可读的日期时间?

📅 👁️ 77

在网站内容运营中,时间信息扮演着不可或缺的角色。无论是文章的发布时间、产品的上架日期,还是评论的提交时间,清晰、易读的日期时间格式都能极大提升用户体验。安企CMS作为一个高效的内容管理系统,充分考虑了这一点,提供了灵活的方式来格式化和显示这些时间戳数据。

理解安企CMS中的时间戳

在安企CMS的后台,当我们发布文章、产品或进行其他内容管理操作时,系统通常会将这些事件的时间记录为一个“时间戳”。简单来说,时间戳是一串数字,代表从某个特定时刻(通常是Unix纪元,即1970年1月1日00:00:00 UTC)到该事件发生时的秒数。虽然它便于系统存储和计算,但对于访客来说,这串数字是难以理解的。

因此,我们需要在前端模板中将这些时间戳转换为人们熟悉的日期时间格式,例如“2023年10月27日 14:30:00”或“今天上午”。

核心工具:stampToDate 标签

安企CMS在模板中提供了一个非常实用的内置标签,叫做stampToDate,专门用于将10位的时间戳格式化为可读的日期时间字符串。它的使用方式直观简洁,只需要传入两个参数:您要格式化的时间戳,以及您期望的日期时间格式。

基本语法是这样的: {{stampToDate(您的时间戳, "您想要的格式")}}

这里的“您的时间戳”通常是您从archiveListarchiveDetailcommentList等标签中获取到的内容的CreatedTimeUpdatedTime等字段。

掌握Go语言的时间格式化规则

理解stampToDate标签的关键在于理解其“您想要的格式”参数。安企CMS是基于Go语言开发的,因此它遵循Go语言特有的时间格式化规则。不同于常见的Y-m-d H:i:s这种直接表示的格式,Go语言采用了一种独特的参考时间来定义日期时间格式。

这个参考时间是固定的:2006年01月02日15点04分05秒 -0700 MST

您不需要记住所有这些数字背后的含义,只需记住这个日期,然后根据您希望的显示效果,将这个参考时间中的对应数字或单词替换成您想要的格式分隔符即可。

例如:

  • 如果您想显示年份,就写2006
  • 如果您想显示月份(带前导零),就写01
  • 如果您想显示日期(带前导零),就写02
  • 如果您想显示24小时制的小时(带前导零),就写15
  • 如果您想显示分钟(带前导零),就写04
  • 如果您想显示秒数(带前导零),就写05
  • 如果您想显示星期几的完整名称,就写Monday;如果只显示缩写,就写Mon

一些常见格式的示例:

您想显示的格式 Go语言格式化字符串 示例输出
年-月-日 2006-01-02 2023-10-27
年月日(中文) 2006年01月02日 2023年10月27日
年/月/日 时:分 2006/01/02 15:04 2023/10/27 14:30
月/日 时:分:秒 01/02 15:04:05 10/27 14:30:00
星期几,年 月 日 Mon, 02 Jan 2006 Fri, 27 Oct 2023
上午/下午 时:分 03:04PM3:04 PM 02:30PM
精确到毫秒(或更多) 2006-01-02 15:04:05.000 2023-10-27 14:30:00.123

实际应用:在模板中格式化时间

当您需要显示文章的发布时间或更新时间时,通常会在archiveListarchiveDetail标签的循环体内使用stampToDate

例如,在文档详情页中显示发布和更新时间:

<article>
    <h1>{{archive.Title}}</h1>
    <div>
        发布时间:<span>{{stampToDate(archive.CreatedTime, "2006年01月02日 15:04:05")}}</span>
        {% if archive.CreatedTime != archive.UpdatedTime %}
        <span>更新时间:{{stampToDate(archive.UpdatedTime, "2006年01月02日 15:04:05")}}</span>
        {% endif %}
    </div>
    <div>
        {%- archiveDetail articleContent with name="Content" %}
        {{articleContent|safe}}
    </div>
</article>

或者,在文章列表中显示每篇文章的发布日期:

<div>
{% archiveList archives with type="page" limit="10" %}
    {% for item in archives %}
    <li>
        <a href="{{item.Link}}">
            <h5>{{item.Title}}</h5>
            <div>{{item.Description}}</div>
            <div>
                <span>发布于:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                <span>阅读量:{{item.Views}}</span>
            </div>
        </a>
    </li>
    {% empty %}
    <li>
        当前没有任何内容
    </li>
    {% endfor %}
{% endarchiveList %}
</div>

通过灵活运用stampToDate标签和Go语言特有的时间格式化规则,您可以轻松地将网站中的时间戳转化为用户友好的日期时间显示,让您的内容更加生动和实用。

其他时间相关功能

除了stampToDate标签,安企CMS还提供了now标签,如果您需要在页面上显示当前服务器时间,可以直接使用它,其格式化规则与stampToDate相同: {% now "2006年01月02日 15:04:05" %}

常见问题 (FAQ)

1. 为什么安企CMS的时间格式化字符串看起来这么奇怪(例如2006-01-02)? 这是因为安企CMS基于Go语言开发,而Go语言在时间格式化时采用了一个固定的参考日期和时间作为模板。这个参考时间就是2006年01月02日15点04分05秒 -0700 MST。您只需要记住这个“模板”,然后将您想要显示的部分替换成参考时间中的对应数字或字母即可。例如,2006代表年份,01代表月份,02代表日期。这种方式虽然初看起来有些不同寻常,但一旦理解了其原理,会发现它非常灵活和精确。

2. 我想显示“今天”、“昨天”或“几分钟前”这种相对时间,stampToDate能实现吗? stampToDate标签主要用于将时间戳格式化为绝对的日期时间字符串(例如“2023年10月27日 14:30”)。它本身不具备计算相对时间的功能。如果您需要显示“N分钟前”、“M小时前”这种相对时间,可能需要结合自定义的Go语言函数或前端JavaScript逻辑来实现。目前安企CMS模板标签主要侧重于绝对时间显示,未来版本可能会考虑加入更丰富的相对时间显示功能。

3. 我的文章发布时间设置了定时发布,但前台没有显示,是什么原因? 在安企CMS后台编辑文章时,您可以设置“发布时间”。如果这个时间被设置为未来的某个时刻,那么这篇文章在到达设定时间之前,是不会在前台显示的。这是安企CMS的“时间因子-定时发布功能”,旨在提高运营的灵活性。请检查您设置的发布时间是否已到。一旦时间到达,文章便会自动发布并显示出来。

相关文章

如何获取并展示AnQiCMS后台配置的友情链接列表?

在网站运营中,友情链接扮演着不可忽视的角色,它们不仅能为网站带来宝贵的外部流量,更有助于提升搜索引擎优化(SEO)效果,增强网站的权威性和可信度。对于使用AnQiCMS的用户来说,管理和展示友情链接是一个既简单又高效的过程。本文将详细介绍如何在AnQiCMS后台配置友情链接,以及如何在您的网站前端模板中优雅地将它们呈现出来。 ### 在AnQiCMS后台管理友情链接 首先

2025-11-08

AnQiCMS模板如何生成和显示网站的留言表单?

在网站运营中,一个高效便捷的留言表单是用户与网站互动的重要桥梁。它不仅收集用户反馈,也是潜在客户获取信息的入口。AnQiCMS作为一个企业级内容管理系统,在这方面提供了强大且灵活的功能,让我们可以轻松地在模板中生成和管理留言表单。 ### AnQiCMS留言表单功能概览 AnQiCMS内置了完善的在线留言功能,并且自v2.0.0-alpha3版本起,便支持了自定义留言字段

2025-11-08

如何在AnQiCMS中显示文档的评论列表并进行分页?

在安企CMS中,为文档页面添加评论列表并实现分页功能,是提升用户互动体验的关键一步。这不仅能让访客参与讨论,分享观点,也为网站内容带来了更多活力。安企CMS为此提供了直观且强大的模板标签,让我们可以轻松实现这些功能。 ### 整合评论功能到您的文档详情页 通常,评论列表和评论表单会集成在文档的详情页面上。在安企CMS中,文档详情页的模板文件通常位于类似 `archive/detail

2025-11-08

AnQiCMS如何获取并展示某个Tag标签下的所有文档列表?

在安企CMS中管理网站内容,Tag标签无疑是一个非常灵活且实用的工具,它能帮助我们把不同分类甚至不同模型的内容按照主题进行归类,极大地丰富了内容的组织方式和用户的浏览体验。那么,当我们想要在一个专门的页面上,集中展示某个特定Tag标签下的所有文档列表时,安企CMS提供了非常直观和强大的模板标签来帮助我们实现这一目标。 ### 理解Tag标签在安企CMS中的作用 在深入代码之前

2025-11-08

AnQiCMS模板如何实现条件判断来控制内容的显示?

在安企CMS的模板设计中,灵活地控制内容的显示是构建动态、响应式网站的关键。无论是根据页面类型、数据状态还是特定条件来展示不同信息,条件判断都是不可或缺的工具。AnQiCMS的模板引擎提供了直观且强大的条件判断机制,让您能够轻松实现这些复杂的逻辑。 ### 核心语法:条件判断的基础 AnQiCMS模板中的条件判断与许多主流模板引擎类似,采用`{% if ... %}`标签结构

2025-11-08

如何在AnQiCMS模板中使用for循环遍历数据并显示?

AnQiCMS以其灵活强大的模板系统,让内容的展示变得高效而富有表现力。对于网站运营者和开发者而言,掌握如何在模板中遍历和显示数据,是解锁其强大功能、让网站内容“活”起来的关键一步。今天,我们就来深入探讨如何在AnQiCMS模板中使用`for`循环,让你的动态数据轻松呈现。 AnQiCMS的模板引擎采用了类似Django的语法,这使得熟悉其他主流模板语言的用户也能快速上手。在模板中

2025-11-08

AnQiCMS如何使用过滤器对文本进行截断或大小写转换?

AnQiCMS 在内容展示上提供了强大的灵活性,其模板引擎内置了丰富的过滤器,帮助用户在不修改原始内容的前提下,轻松地对文本进行各种处理,包括截断和大小写转换。这些过滤器使得前端内容的呈现更加精准和美观,满足不同场景下的展示需求。 在AnQiCMS的模板语法中,过滤器的使用方式非常直观。您可以通过在变量名后添加一个竖线符号(`|`)来应用过滤器,如果过滤器需要参数,则在过滤器名称后使用冒号(`

2025-11-08

如何在AnQiCMS模板中显示网站的移动端URL?

在使用AnQiCMS搭建和管理网站时,很多朋友可能会遇到这样的需求:如果网站有独立的移动端版本,如何在模板中便捷地获取并显示这个移动端网站的URL呢?这不仅方便用户在不同设备间切换,对搜索引擎优化(SEO)也有着积极的意义。别担心,AnQiCMS提供了非常直观的方式来实现这一点。 ### 为什么我们需要在模板中显示移动端URL? 首先,我们来简单聊聊为什么会有这样的需求

2025-11-08