如何使用`stampToDate`标签将数据库中的时间戳格式化为可读日期?

📅 👁️ 71

在网站运营中,我们经常会遇到这样的情况:数据库里存储的时间信息,比如文章的发布时间、商品的创建时间等,往往以一串数字(时间戳)的形式存在。这串数字对机器来说清晰明了,但对我们用户来说,可读性就差远了。想象一下,一篇文章旁边显示的是“1678886400”,而不是“2023年03月15日”,体验上是不是大打折扣?安企CMS深知这一点,并为此提供了一个非常实用的模板标签——stampToDate,帮助我们轻松将这些原始时间戳格式化成美观易读的日期和时间。

为什么我们需要格式化时间戳?

数据库中存储的时间戳通常是一个整数,代表从1970年1月1日00:00:00 UTC(Unix纪元)开始到现在的秒数或毫秒数。这种统一的存储方式便于数据处理和跨时区计算,但在前端页面展示时,直接显示这些数字会让用户感到困惑,影响阅读体验。将它们转换为“2023年03月15日 10:30”或“昨天 14:00”这样的格式,能极大地提升网站的专业性和用户友好度。

认识stampToDate标签及其使用方式

安企CMS的stampToDate标签设计得非常简洁高效,它主要需要两个关键信息来完成时间戳的格式化:

  1. 原始时间戳:这是您从数据库中获取到的那串数字。在安企CMS中,这通常是一个10位的整数,代表秒级时间戳。例如,1609470335
  2. 格式字符串:这是定义您想要日期时间如何显示的“模板”。与其他一些系统可能使用YYYY-MM-DD这样的占位符不同,安企CMS(基于Go语言开发)采用的是Go语言特有的日期时间格式化方式。它以一个固定的参考日期 2006-01-02 15:04:05 作为格式化的“样本”。

请注意,这个参考日期本身并不会被实际输出。您需要将您想要的日期时间组成部分,对照这个参考日期中的具体数字来编写格式字符串。例如:

  • 如果您想显示四位数的年份,就写 2006
  • 如果您想显示两位数的月份,就写 01
  • 如果您想显示两位数的日期,就写 02
  • 如果您想显示24小时制的小时数,就写 15
  • 如果您想显示两位数的分钟数,就写 04
  • 如果您想显示两位数的秒数,就写 05
  • 如果您想显示12小时制的小时数,就写 3,并配合 PMAM

stampToDate标签的基本语法结构是:

{{ stampToDate(您的时间戳变量或数字, "您的格式字符串") }}

实际操作与示例

让我们通过几个具体的例子,看看stampToDate标签是如何让时间戳“活”起来的。假设我们有一个文章对象item,其发布时间戳字段是CreatedTime(值为1609470335,即2021年1月1日12:25:35)。

  1. 只显示“年-月-日”:

    如果您希望在文章列表中只显示简洁的日期,例如“2021-01-01”:

    <p>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>
    

    输出结果将是:2021-01-01

  2. 显示详细的“年-月-日 时:分:秒”:

    如果需要展示精确到秒的时间信息,可以在格式字符串中加入小时、分钟和秒的参考:

    <p>更新时间:{{ stampToDate(item.UpdatedTime, "2006-01-02 15:04:05") }}</p>
    

    输出结果将是:2021-01-01 12:25:35

  3. 自定义中文或其他分隔符格式:

    stampToDate的强大之处在于其灵活性。您可以自由组合文本和参考日期数字来创建任何您想要的格式:

    <p>文章发布于:{{ stampToDate(item.CreatedTime, "2006年01月02日") }}</p>
    

    输出:2021年01月01日

    <p>日期:{{ stampToDate(item.CreatedTime, "01/02/2006") }}</p>
    

    输出:01/01/2021

    甚至可以利用12小时制和AM/PM标记:

    <p>具体时间:{{ stampToDate(item.CreatedTime, "3:04 PM") }}</p>
    

    输出:12:25 PM (如果时间是下午,则显示PM,上午则显示AM)

  4. 在文章详情页的常见用法:

    在文章详情页,您通常会有一个当前文章对象,例如 archive。您可以这样调用它的时间字段:

    <p>发表于:{{ stampToDate(archive.CreatedTime, "2006年01月02日 15:04") }}</p>
    <p>最后编辑:{{ stampToDate(archive.UpdatedTime, "2006-01-02 星期一") }}</p>
    

    Go语言的格式化规则还支持更多高级用法,例如显示星期几、月份

相关文章

模板中的`if`、`for`等逻辑标签如何灵活控制内容的条件显示和循环遍历?

在安企CMS的模板世界里,我们常常需要根据不同的条件展示内容,或者重复显示一系列数据,这时候,`if` 和 `for` 这两个逻辑标签就显得尤为重要。它们是模板中构建动态内容、实现灵活布局的基石,能够帮助我们精准控制网页上每一块信息的呈现。 ### AnQiCMS 模板中的条件逻辑:`if` 标签 `if` 标签在模板中的作用就像一个智能的开关,它允许我们根据特定条件来决定是否显示某部分内容

2025-11-08

`pagination`标签如何为文章或产品列表生成美观的分页导航?

在网站运营中,随着内容量的不断增长,无论是文章、产品还是其他列表,如何高效地组织和展示这些内容,同时保证用户浏览体验的流畅性和搜索引擎的友好度,都是一个需要深思熟虑的问题。分页导航就是解决这一难题的关键工具。AnQiCMS 提供了一个强大而灵活的 `pagination` 标签,让你可以轻松为各类列表生成美观且功能完善的分页导航。 ### 分页的秘密:`pagination` 标签如何工作

2025-11-08

如何使用`linkList`标签显示网站友情链接列表?

在我们的网站运营过程中,友情链接不仅能帮助提升网站的访问量,更是SEO优化不可或缺的一部分。一个健康的友情链接生态,能够有效地传递权重,增强网站的权威性。在AnqiCMS中,管理和展示友情链接是一件非常便捷的事情,这主要得益于其内置的`linkList`标签。 本文将详细介绍如何使用`linkList`标签在您的AnqiCMS网站上显示友情链接列表。 ## 认识 `linkList`

2025-11-08

`guestbook`标签如何快速生成可定制字段的网站留言表单?

在网站运营中,与访客互动、收集反馈是提升用户体验和获取宝贵信息的重要环节,而留言表单正是实现这一目标的核心工具。安企CMS(AnQiCMS)深知其重要性,为用户提供了`guestbook`标签,让你可以轻松、灵活地构建功能强大且高度定制化的网站留言表单。 使用`guestbook`标签,你不仅能快速生成基础的留言功能,更能根据自己的业务需求,为表单添加各种自定义字段,从而精确地收集你想要的信息

2025-11-08

`include`、`extends`和`macro`标签如何提升模板代码的复用性和维护性?

## 提升安企CMS模板效率与可维护性:`include`、`extends`和`macro`的巧妙运用 在安企CMS的日常内容运营中,我们经常需要创建和管理大量页面。如何确保这些页面在保持一致性的同时,又能高效地进行开发和维护,是每个运营者都需要面对的挑战。安企CMS提供的模板引擎,借鉴了Django等主流框架的优秀实践,通过`include`

2025-11-08

`filters`(如`truncatechars`、`safe`)如何对输出内容进行格式化或安全处理?

在AnQiCMS的日常运营中,内容的呈现方式和安全性是决定网站专业度和用户体验的关键。AnQiCMS强大的模板引擎,其语法借鉴了Django模板引擎的诸多优点,其中“过滤器”(filters)便是内容格式化与安全处理的幕后小能手。这些过滤器能够帮助我们轻松地对输出内容进行处理,无论是精简文字、转换格式,还是保障内容的安全,都变得触手可及。 ### 过滤器:内容输出的“变形金刚” 简单来说

2025-11-08

Markdown编辑器写入的内容如何在前端页面正确渲染为HTML?

在 AnQiCMS 中,Markdown 是一种高效且广受欢迎的内容创作方式。它以简洁的标记语法,让创作者能够专注于内容本身,而无需被复杂的排版工具所困扰。然而,将这些简洁的 Markdown 文本呈现在用户面前的浏览器中,需要经过 AnQiCMS 后台和前端模板的协同处理。理解这个过程,能帮助您更好地利用 AnQiCMS 的内容管理能力,确保您的内容以**状态展示。 ### 启用

2025-11-08

如何在Markdown内容中正确显示数学公式和流程图?

随着安企CMS(AnQiCMS)内置Markdown编辑器的普及,许多用户都希望能够在自己的网站内容中更灵活地展示信息,尤其是对于技术文档、教程或数据分析等内容,数学公式和流程图的呈现变得尤为重要。AnQiCMS通过集成外部库的方式,为Markdown内容带来了强大的扩展能力,让这些专业内容的显示变得轻松便捷。 要确保Markdown内容中的数学公式和流程图能够正确呈现

2025-11-08