AnQiCMS 模板如何格式化时间戳并显示为指定日期时间格式?

📅 👁️ 59

在AnQiCMS模板中轻松格式化时间戳:自定义日期时间显示指南

在网站运营中,内容发布时间、更新时间、评论时间等日期信息,是我们向访客传达信息的重要组成部分。很多时候,从数据库中获取到的时间数据通常是时间戳(一串数字),这对于用户来说并不直观。如何将这些原始的时间戳转化为易于阅读的日期时间格式,并根据页面设计灵活调整显示方式,是模板开发中经常遇到的需求。

AnQiCMS 为模板提供了非常实用且灵活的工具来解决这个问题,其中最核心的就是 stampToDate 标签。

认识 stampToDate 标签:时间戳的“魔法棒”

stampToDate 标签是 AnQiCMS 模板引擎内置的一个功能,专门用于将数字形式的时间戳转换成我们常见的日期时间字符串。它的使用方式简洁明了:

{{stampToDate(时间戳, "格式")}}

这里的关键在于两个部分:

  1. 时间戳: 这通常是一个 10 位的数字,代表从 Unix 纪元(1970年1月1日00:00:00 UTC)开始经过的秒数。在 AnQiCMS 的文档、评论、用户等数据中,例如 item.CreatedTime (创建时间)、item.UpdatedTime (更新时间) 等字段,返回的都是这种时间戳。

  2. 格式: 这是决定日期时间如何显示的关键。AnQiCMS 的模板引擎基于 Go 语言,其时间格式化方式非常独特。它不使用我们常见的如 Y-m-d H:i:s 这样的占位符,而是使用一个固定的参考时间 2006-01-02 15:04:05 来作为格式化的模板。

    理解这个参考时间至关重要:

    • 年份:2006 表示
    • 月份:01 (代表一月) 表示
    • 日期:02 (代表二号) 表示
    • 小时:15 (24小时制,代表下午三点) 表示
    • 分钟:04 (代表四分) 表示
    • 秒钟:05 (代表五秒) 表示
    • AM/PM:PMAM 表示(例如 3:04PM
    • 星期:Mon (星期一的缩写) 或 Monday (星期一全称) 表示

    当你想要某种日期时间格式时,只需用参考时间中对应的数字或字母来“拼写”出你想要的格式即可。

实际应用场景:AnQiCMS 数据中的时间戳

在 AnQiCMS 模板中,许多地方都会遇到需要格式化时间戳的情况。下面我们通过几个常见的例子来说明:

1. 文档列表或详情页中的创建/更新时间

无论是文章、产品还是其他自定义内容模型,它们的创建和更新时间都是以时间戳形式存储的。

示例代码:

{# 假设这是在一个文档列表的循环中,或者文档详情页直接获取 archive 对象 #}
<div>
    <span>发布日期:{{stampToDate(item.CreatedTime, "2006年01月02日")}}</span>
    <span>更新时间:{{stampToDate(item.UpdatedTime, "2006-01-02 15:04")}}</span>
</div>

{# 如果是在文档详情页直接调用当前文档的时间 #}
<div>
    <p>文章发布于:{{stampToDate(archive.CreatedTime, "2006/01/02")}}</p>
    <p>最后更新于:{{stampToDate(archive.UpdatedTime, "01-02 15:04:05")}}</p>
</div>

2. 评论列表中的评论时间

用户评论的时间也需要清晰地展示。

示例代码:

{# 假设这是在一个评论列表的循环中 #}
{% for comment in comments %}
    <div>
        <p>{{comment.UserName}} 于 {{stampToDate(comment.CreatedTime, "2006年1月2日 15:04")}} 评论:</p>
        <p>{{comment.Content}}</p>
    </div>
{% endfor %}

3. 用户信息中的登录/过期时间

在显示用户个人信息,例如上次登录时间或VIP会员过期时间时,格式化同样重要。

示例代码:

{# 假设这是在一个用户详情页 #}
{% userDetail userInfo with name="LastLogin" id="1" %}
{% userDetail vipExpire with name="ExpireTime" id="1" %}
<div>
    <p>上次登录:{{stampToDate(userInfo, "2006-01-02 15:04")}}</p>
    <p>VIP 到期:{{stampToDate(vipExpire, "2006年01月02日")}}</p>
</div>

灵活多样的格式化示例

掌握了 Go 语言的参考时间格式化规则,你就可以创造出各种你想要的日期时间显示效果。

你想显示的格式 stampToDate 的格式字符串 示例输出 (假设时间戳为 1609470335 即 2021年1月1日 11:05:35)
年-月-日 "2006-01-02" 2021-01-01
年月日 (中文) "2006年01月02日" 2021年01月01日
月/日/年 "01/02/2006" 01/01/2021
时:分 (24小时制) "15:04" 11:05
时:分:秒 (24小时制) "15:04:05" 11:05:35
时:分 AM/PM (12小时制) "3:04PM" 11:05AM
年-月-日 时:分 "2006-01-02 15:04" 2021-01-01 11:05
星期, 日 月 年 "Mon, 02 Jan 2006" Fri, 01 Jan 2021
完整日期时间 (带时区) "2006-01-02T15:04:05Z07:00" 2021-01-01T11:05:35Z+08:00

小贴士:

  • Go语言参考时间记忆法: 有一个简单的口诀可以帮助记忆 Go 语言的参考时间:“1月2日,3点4分5秒,2006年”。分别对应 01 (月), 02 (日), 03 (PM小时,也可记作 15 的24小时制), 04 (分), 05 (秒), 2006 (年)。
  • stampToDatedate 过滤器的区别: AnQiCMS 模板中还有一个 date 过滤器 ({{obj|date:"格式"}})。但请注意,date 过滤器仅适用于 Go 语言原生的 time.Time 类型的对象,而非直接的数字时间戳。对于 AnQiCMS 数据库中常见的 10 位时间戳,务必使用 stampToDate 标签进行格式化。

总结

stampToDate 标签是 AnQiCMS 模板中处理日期时间显示的核心工具。通过理解其基于 Go 语言参考时间的格式化机制,您可以轻松将原始时间戳转换为各种易于阅读和满足设计需求的日期时间格式,从而提升网站的用户体验和内容呈现的专业性。灵活运用这一标签,将使您的网站内容更加生动和人性化。


常见问题 (FAQ)

1. 为什么我在模板中直接使用 {{item.CreatedTime}} 却显示一串数字,而不是我想要的日期格式?

这是因为 item.CreatedTime 在 AnQiCMS 内部存储的是一个标准的 10 位 Unix 时间戳,它是一个纯数字。为了让它显示为我们常见的日期时间格式,您需要使用 stampToDate 标签

相关文章

如何在分类列表页只显示当前分类的文档,而不包含子分类的文档?

在运营网站时,我们经常会遇到内容展示的需求,其中一个常见场景就是在分类列表页如何精确控制显示内容。有时,我们希望在一个主分类页面,不仅展示该分类下的文档,也包括其所有子分类的文档,以提供更全面的信息。然而,在另一些情况下,为了保持页面主题的纯粹性和内容的聚焦性,我们可能只希望严格地展示当前分类下的文档,而不包含任何子分类的内容。 安企CMS作为一款功能灵活的内容管理系统

2025-11-07

AnQiCMS 的“多站点管理”功能是如何实现不同站点内容独立显示的?

## 深入解析 AnQiCMS 的“多站点管理”功能:如何确保内容独立显示? 在运营多个网站或拥有多个品牌子站点时,如何高效管理内容、同时又能保证每个站点的内容独立性,是许多运营者面临的挑战。AnQiCMS 提供的“多站点管理”功能,正是为了解决这一痛点而设计的。它不仅能让您在一个后台集中管理所有站点,更能从根本上保证每个站点的内容独立显示,避免混淆和错误。 那么,AnQiCMS

2025-11-07

如何在AnQiCMS模板中设置面包屑导航的显示逻辑和层级?

在构建网站时,面包屑导航不仅能有效提升用户体验,帮助访客了解当前所在位置,更是搜索引擎优化(SEO)不可或缺的一部分,因为它能清晰地展示网站结构层级。对于使用AnQiCMS来管理内容的网站而言,灵活地设置面包屑导航的显示逻辑和层级是模板制作中的一项重要工作。 AnQiCMS提供了一个强大且易于使用的模板标签来处理面包屑导航,让您无需编写复杂的后端逻辑,就能在前端模板中轻松实现

2025-11-07

怎样在产品详情页显示自定义的产品参数和规格?

在AnQiCMS中为产品详情页添加自定义参数和规格,能够让您的产品信息呈现得更详尽、更专业。无论是电子产品的技术参数,还是服装的尺码、颜色选项,通过灵活的内容模型,您都可以轻松实现这些个性化的展示需求。接下来,我们将一步步了解如何在AnQiCMS中设置、填写并最终在您的产品详情页展示这些自定义的参数和规格。 --- ### 第一步:在后台定义产品自定义参数 要开始为产品添加自定义参数

2025-11-07

怎样在文章详情页显示上一篇和下一篇文章的标题及链接?

在安企CMS中,为文章详情页添加上一篇和下一篇文章的标题及链接,不仅能优化用户在您网站上的浏览体验,引导他们发现更多相关内容,还能在一定程度上改善网站内部链接结构。安企CMS凭借其简洁高效的模板引擎,让这项功能的实现变得非常直观。 ### 核心功能揭秘:prevArchive 与 nextArchive 标签 安企CMS的模板系统内置了两个专为处理文章导航的标签:`prevArchive`

2025-11-07

AnQiCMS 如何实现文章内容中特定关键词的批量替换并前端展示?

在内容运营的日常工作中,我们经常会遇到需要对大量文章内容进行统一调整的情况。这可能涉及更新品牌名称、修正行业术语、统一产品型号,甚至是为了SEO目的而调整关键词密度。手动逐一修改成百上千篇文章无疑是巨大的工作量,且极易出错。AnQiCMS提供了一项非常实用的功能,能够帮助我们高效地实现文章内容中特定关键词的批量替换,并确保这些改动在网站前端正确展示。 ### 为什么需要批量替换文章内容关键词

2025-11-07

如何在前端模板中显示不同内容模型的自定义字段内容?

AnQiCMS 的内容模型功能为网站运营带来了极大的灵活性,它允许我们根据业务的实际需要,来定义各种个性化的内容结构。无论是文章、产品、活动,还是其他任何自定义类型的内容,我们都可以为其添加独特的字段。那么,如何在网站前端模板中灵活地展示这些内容模型中的自定义字段呢?接下来,让我们一起探索这个实用的技巧。 ### 理解 AnQiCMS 的内容模型与自定义字段 在使用 AnQiCMS

2025-11-07

AnQiCMS 网站是否支持自动将上传图片转换为WebP格式以加快显示速度?

网站的加载速度是用户体验和搜索引擎优化的重要考量标准。其中,图片作为页面内容的重要组成部分,其加载效率对整体网站性能有着显著影响。WebP 是一种现代图像格式,与传统的 JPEG、PNG 相比,它能以更小的文件体积提供相近甚至更高的图像质量,从而显著加快网页加载速度。 AnQiCMS 作为一款注重效率和性能的内容管理系统,充分考虑了网站在图片处理方面的优化需求。对于“AnQiCMS

2025-11-07