在网站内容运营中,文章的发布时间或更新时间是向访客传递信息的重要元素。一个清晰、易读的日期时间格式不仅能提升用户体验,还能让访客快速了解内容的实效性。安企CMS为此提供了一个非常实用的模板标签,帮助我们轻松实现这一目标。
核心工具:stampToDate 标签
安企CMS允许我们通过stampToDate标签,将文章存储的原始时间戳(通常是一个10位数字)格式化成任何我们需要的日期时间样式。它的基本使用方法非常直观:
{{ stampToDate(时间戳变量, "格式化字符串") }}
这里的 时间戳变量 是文章中存储时间戳的字段,例如文章的创建时间 (CreatedTime) 或更新时间 (UpdatedTime)。格式化字符串 则是定义你希望时间如何显示的关键。
掌握Go语言的日期时间格式化规则
在使用stampToDate标签时,格式化字符串的写法与我们日常可能熟悉的YYYY-MM-DD或%Y-%m-%d有所不同,它是基于Go语言特有的“参考时间”来定义的。Go语言采用一个固定的时间点:2006年01月02日 15点04分05秒 作为所有日期时间格式化字符串的参考。
这意味着,当你想显示某个日期时间元素时,你需要用这个参考时间对应的数字来构造你的格式字符串。以下是一些常用格式的对照:
- 年份:
2006(参考年份) - 月份:
01(参考月份,带前导零) 或1(不带前导零) - 日期:
02(参考日期,带前导零) 或2(不带前导零) - 小时:
15(24小时制) 或03(12小时制,带前导零) 或3(12小时制,不带前导零) - 分钟:
04(带前导零) 或4(不带前导零) - 秒数:
05(带前导零) 或5(不带前导零) - 星期:
Mon(星期几的缩写) 或Monday(星期几的全称)
例如,如果你想显示“年-月-日 时:分”,对应的格式字符串就是"2006-01-02 15:04"。
实践应用:在文章列表与详情页中格式化时间
在安企CMS中,文章的创建时间通常存储在 CreatedTime 字段中,更新时间存储在 UpdatedTime 字段中。无论是文章列表页还是文章详情页,你都可以通过类似 item.CreatedTime (在循环遍历文章列表时) 或 archive.CreatedTime (在文章详情页直接访问时) 的方式获取到时间戳,然后结合stampToDate标签进行格式化。
下面是一些在模板中格式化文章时间的示例:
示例一:在文章列表页(archiveList 循环中)
假设你正在使用archiveList标签循环显示文章列表,并且希望每篇文章都显示发布日期和更新日期。
{% archiveList articles with type="page" limit="10" %}
{% for item in articles %}
<article>
<h3><a href="{{ item.Link }}">{{ item.Title }}</a></h3>
<p>发布于:{{ stampToDate(item.CreatedTime, "2006年01月02日") }}</p>
<p>更新于:{{ stampToDate(item.UpdatedTime, "2006-01-02 15:04") }}</p>
<p>{{ item.Description }}</p>
</article>
{% endfor %}
{% endarchiveList %}
示例二:在文章详情页
在文章详情页,我们通常会展示更详细的日期时间信息,甚至包括星期几。
<article>
<h1>{{ archive.Title }}</h1>
<div class="article-meta">
<span>发布日期:{{ stampToDate(archive.CreatedTime, "2006年01月02日 星期一") }}</span>
<span>最后更新:{{ stampToDate(archive.UpdatedTime, "2006/01/02 15:04:05") }}</span>
</div>
<div class="article-content">
{{ archive.Content|safe }}
</div>
</article>
通过这些简单的代码片段,你就可以让文章的时间显示更加人性化。
值得一提的是,如果您仅需在文章详情页直接展示 CreatedTime 或 UpdatedTime,archiveDetail 标签本身也支持 format 参数进行格式化,例如:{% archiveDetail with name="CreatedTime" format="2006-01-02" %}。但这仅限于直接调用这两个字段时,对于模板中的其他时间戳变量,stampToDate 标签仍是通用且强大的选择。
自定义与灵活性
stampToDate标签的强大之处在于它的灵活性。你可以根据网站的设计风格和用户群体的阅读习惯,自由组合Go语言的参考时间元素,创建出独一无二的日期时间格式。无论是简洁的“月/日”,还是详细的“年-月-日 星期几 时:分:秒”,都可以通过调整格式字符串来实现。
通过熟练运用stampToDate标签和Go语言的日期时间格式化规则,你可以让网站上的时间信息更加清晰、专业,从而提升整体的用户体验。
常见问题 (FAQ)
问:为什么格式字符串是"2006-01-02"而不是"YYYY-MM-DD"?
答:安