用户友好的日期时间显示对于网站内容至关重要。一个清晰、易读的时间格式不仅能提升访客的阅读体验,还能帮助他们快速了解内容的发布或更新时效。在AnQiCMS中,将文章的发布时间戳格式化为诸如“2023年01月01日 14:30”这样的格式,实现起来既灵活又高效。

理解时间戳在AnQiCMS中的运用

在AnQiCMS管理的内容中,无论是文章、产品还是其他自定义模型,其发布或更新时间通常以时间戳(Unix Timestamp)的形式存储。这些时间戳本质上是一个数字,代表从1970年1月1日00:00:00 UTC(协调世界时)到某个特定时刻所经过的秒数。在模板文件中,我们通常会接触到CreatedTime(内容创建时间)和UpdatedTime(内容更新时间)这类字段,它们就是存储这些原始时间戳的变量。

直接显示原始的时间戳数字对用户来说并不直观,因此我们需要一个工具来将其转换为人们习惯阅读的日期时间格式。

核心工具:stampToDate 标签

AnQiCMS提供了一个名为stampToDate的模板标签,专门用于执行时间戳到用户友好日期时间格式的转换。这个标签的使用方式非常简洁明了,它主要接收两个参数:

  1. 要格式化的时间戳: 这通常是你从文章、产品或其他内容数据中获取到的CreatedTimeUpdatedTime字段的值。例如,在文章详情页可能是archive.CreatedTime,在文章列表循环中可能是item.CreatedTime
  2. 格式化字符串: 这是核心参数,它决定了日期时间最终以何种格式显示。AnQiCMS作为一个基于Go语言开发的系统,其日期时间格式化遵循Go语言特有的规则。

深入理解格式化字符串(Go语言日期时间参考)

Go语言的日期时间格式化机制与其他语言(如PHP的Y-m-d H:i:s)略有不同。它并非使用抽象的占位符,而是使用一个固定的参考日期和时间来作为格式模板。这个参考时间就是:

2006年01月02日 15时04分05秒 -0700 MST

你可以简单地记住这个参考时间中的每个数字所代表的日期时间组件:

  • 2006 代表年份
  • 01 代表月份(两位数)
  • 02 代表日期(两位数)
  • 15 代表小时(24小时制)
  • 04 代表分钟
  • 05 代表秒
  • PM 代表上下午标识(如需要12小时制)

当你想要将时间戳格式化为特定样式时,只需按照你希望的样式,用上述参考时间中对应的数字和文字来构建你的格式字符串。

例如,我们希望得到“2023年01月01日 14:30”这样的格式,那么格式字符串就应该写成:"2006年01月02日 15:04" 请注意,这里的15代表24小时制的小时部分,04代表分钟部分。

一些常用的格式化字符串示例及其含义:

  • "2006-01-02":显示为 “2023-01-01”
  • "2006年01月02日":显示为 “2023年01月01日”
  • "15:04":显示为 “14:30” (24小时制的时间)
  • "03:04 PM":显示为 “02:30 PM” (12小时制带上下午标识)
  • `“2006-01-0