安企CMS模板中如何使用`stampToDate`标签格式化时间戳?

在网站内容管理中,时间的准确与美观呈现对于用户体验至关重要。无论是文章的发布日期、产品更新时间,还是评论提交时刻,清晰、一致的时间格式能够显著提升内容的可读性和专业性。安企CMS作为一个高效且灵活的内容管理系统,深谙此道,并为模板开发者提供了一个强大而简洁的工具——stampToDate标签,专门用于将时间戳格式化为各种自定义日期和时间显示格式。

理解 stampToDate 标签

stampToDate标签的核心功能是将一个标准的10位Unix时间戳(即从1970年1月1日00:00:00 UTC到当前时间的秒数)转换为易于人类阅读的日期和时间字符串。这个标签在安企CMS的模板语言中可以直接使用,无需复杂的逻辑处理,极大地简化了时间信息的展示。例如,当我们需要显示文章的创建时间(通常以时间戳形式存储)时,stampToDate便能大显身手,将其转化为“2023年10月26日”或“上午10:30”等格式。

stampToDate 标签的语法结构

stampToDate标签的语法结构直观且易于掌握,其基本形式为 {{stampToDate(时间戳, "格式")}}

其中,时间戳部分预期是一个10位的整数,代表Unix时间戳。在安企CMS的模板中,这通常来源于数据库字段,例如文章对象(archive)或列表项(item)的CreatedTimeUpdatedTime属性。例如:item.CreatedTime会提供一个10位的时间戳。

格式部分是一个字符串,定义了你希望时间戳被格式化后的具体样式。这里需要特别注意的是,安企CMS底层使用的Go语言在时间格式化上采用了一种独特的“参考时间”模式。你不是使用像YYYY-MM-DD这样的抽象占位符,而是使用Go语言的特定参考日期和时间值来定义格式。这个参考时间固定为:2006年1月2日 15时4分5秒,具体到毫秒和时区,则为 2006-01-02 15:04:05.999999999 -0700 MST。这意味着,如果你想显示年份,你需要使用2006作为格式字符串中的占位符;想显示月份,则使用01;日期使用02,以此类推。

stampToDate 的实际应用示例

让我们通过一些具体例子来了解stampToDate的灵活应用。假设我们有一个时间戳变量 publishStamp,其值为 1609470335(对应于2021年1月1日 12:25:35)。

若要将其格式化为常见的“年-月-日”形式,例如“2021-01-01”,可以使用如下格式:

<div>{{stampToDate(publishStamp, "2006-01-02")}}</div>

如果需要显示中文的日期格式,例如“2021年01月01日”:

<div>{{stampToDate(publishStamp, "2006年01月02日")}}</div>

对于只显示时间(例如“12:25”或“12:25:35”)的需求,格式化字符串将侧重于时分秒部分:

<div>{{stampToDate(publishStamp, "15:04")}}</div>
<div>{{stampToDate(publishStamp, "15:04:05")}}</div>

结合日期和时间,可以实现更全面的显示,例如“2021-01-01 12:25:35”:

<div>{{stampToDate(publishStamp, "2006-01-02 15:04:05")}}</div>

在实际内容列表中,例如在使用archiveList标签循环显示文章时,item.CreatedTimeitem.UpdatedTime字段通常是10位时间戳。此时,