在网站运营过程中,内容的发布时间是向访问者传达信息的重要组成部分。一个清晰、易读的日期格式不仅能提升用户体验,还能让网站看起来更专业、更具时效性。在AnQiCMS中,内容发布时间通常以一串数字(即时间戳)的形式存储。如何将这些数字转换为我们日常熟悉的“年-月-日”或“月/日 时:分”等友好格式呢?AnQiCMS为我们提供了一个非常便捷的模板标签:stampToDate。
理解AnQiCMS中的时间戳
在AnQiCMS的模板开发中,我们经常会遇到像item.CreatedTime(内容创建时间)或archive.UpdatedTime(内容更新时间)这样的变量。它们的值通常是一个10位数的Unix时间戳,例如1609470335。这种原始的时间戳对于机器处理非常方便,但对于人类阅读来说却很不直观。为了提升网站内容的阅读体验,我们需要一个方法来将这些时间戳“翻译”成更易于理解的日期时间格式。
引入stampToDate标签
这个时候,stampToDate标签就派上用场了。它的基本用法非常直观,遵循AnQiCMS模板引擎的通用语法:
{{stampToDate(时间戳, "格式")}}
这个标签接收两个主要参数:
- 时间戳: 需要被格式化的10位Unix时间戳。这通常是你从
archive、item等对象中获取到的CreatedTime或UpdatedTime字段。 - 格式: 一个字符串,用来定义你想要的日期时间显示格式。
掌握Go语言的时间格式化规则
这里的“格式”参数是理解和掌握stampToDate标签的关键。AnQiCMS的模板引擎底层采用了Go语言,所以时间格式的定义也沿用了Go语言独特的方式。与我们常见的YYYY-MM-DD等符号占位符格式不同,Go语言使用一个特定的参考时间来定义日期时间的各个部分。这个参考时间是:
2006年01月02日 15时04分05秒 (时区通常为MST或UTC-0700)
其原理是:你希望日期时间的哪个部分以什么形式显示,就用这个参考时间中对应部分的数字或字符来表示。例如:
- 年: 使用
2006来表示四位年份。 - 月: 使用
01来表示两位月份(不足两位补零),使用1来表示不补零的月份。 - 日: 使用