在网站运营和内容管理中,显示准确的日期和时间是一项基本而重要的需求。无论是页脚的版权年份、文章的发布或更新日期,还是特定事件的倒计时,灵活地控制日期时间格式都能极大地提升用户体验和网站的专业度。在AnQiCMS中,您可以通过几种简单实用的方法,在模板中轻松实现当前年份或自定义格式日期时间的显示。
一、显示当前系统年份或日期时间:利用 {% now %} 标签
当您需要展示网站当前所在年份,例如在页脚的版权信息中,或者需要显示当前精确到某时某刻的时间,{% now %} 标签是一个非常便捷的选择。这个标签会获取AnQiCMS服务器当前的系统时间,并按照您指定的格式输出。
它的基本用法是:
{% now "格式化字符串" %}
这里 “格式化字符串” 是关键。AnQiCMS采用了Go语言的日期时间格式化规则,这与您可能熟悉的“YYYY-MM-DD HH:mm:ss”等格式有所不同。Go语言使用一个特定的参考时间点 2006-01-02 15:04:05 来作为格式化的模板。您需要将这个参考时间点中的各个数字替换为实际需要显示的日期时间组件。
例如,如果您想显示当前的年份,只需将 2006 替换为 2006:
© {% now "2006" %} 版权所有
这将在您的网站页脚显示如 © 2023 版权所有 (假设当前年份是2023)。
如果您需要显示当前完整的日期,可以这样:
今天是:{% now "2006年01月02日" %}
或者,如果需要更精确的时间,包含小时和分钟:
当前时间是:{% now "15:04" %}
通过灵活组合 2006(年)、01(月)、02(日)、15(时)、04(分)、05(秒)等元素,您可以定制出各种各样的日期时间格式。
二、格式化内容中的日期时间:使用 stampToDate 函数
在AnQiCMS中,许多内容字段,如文章的 CreatedTime(创建时间)和 UpdatedTime(更新时间),是以时间戳(通常是一个10位或13位的数字)的形式存储在数据库中的。直接显示这些时间戳对用户来说并不友好。这时,我们就需要 stampToDate 函数来将这些时间戳转换为易读的日期时间格式。
stampToDate 函数的用法是:
{{ stampToDate(时间戳变量, "格式化字符串") }}
同样,这里的 “格式化字符串” 也遵循Go语言的 2006-01-02 15:04:05 参考格式。
假设您正在文章详情页或文章列表页循环显示内容,并且 item 是当前文章的变量,您可以这样显示文章的发布日期:
<p>发布日期:{{ stampToDate(item.CreatedTime, "2006年01月02日") }}</p>
如果您想在文章详情页显示更详细的发布时间,包括时分秒:
<p>发布时间:{{ stampToDate(archive.CreatedTime, "2006-01-02 15:04:05") }}</p>
或者只显示月份和日期:
<p>发表于:{{ stampToDate(item.CreatedTime, "01月02日") }}</p>
此外,如果您只想从时间戳中提取年份,比如在文章列表中显示简要年份:
<p>年份:{{ stampToDate(item.CreatedTime, "2006") }}</p>
stampToDate 函数的强大之处在于,它能够将任何有效的时间戳按照您所需的精确格式进行转换,从而满足不同内容展示的需求。
三、总结与小贴士
AnQiCMS通过 {% now %} 标签和 stampToDate 函数,为您提供了灵活多样的日期时间显示和格式化能力。
{% now %}标签:适用于需要显示当前系统时间(如版权年份、实时时间)的场景。stampToDate函数:适用于需要格式化内容中已存储的时间戳(如文章发布/更新时间)的场景。
一个小贴士:Go语言的日期格式字符串确实需要一些适应时间。记住 2006年01月02日 15时04分05秒 这个参考日期,您想显示什么,就将它替换为 2006、01、02 等对应的数字。例如,想显示两位数的年份,就用 06;想显示两位数的月份,就用 01。实践是最好的学习方式,您可以在自己的AnQiCMS模板中尝试不同的组合,看看效果。
掌握这些方法,您就可以更好地控制网站内容的日期时间显示,提升网站的整体专业度和用户体验。
常见问题 (FAQ)
问:为什么AnQiCMS的日期格式化字符串是
2006-01-02 15:04:05这种形式,而不是常见的YYYY-MM-DD? 答:这是因为AnQiCMS底层是基于Go语言开发的。Go语言在日期时间格式化时,不使用像YYYY-MM-DD这样的符号占位符,而是使用一个固定的参考时间2006年01月02日15时04分05秒来定义格式。您只需要将您希望显示的日期时间部分替换为这个参考时间中对应的数字(例如,年份用2006,月份用01,小时用15),系统就会根据您的模板输出相应的日期时间。问:我只想在页脚显示当前年份,例如
2023,应该怎么写? 答:您可以使用{% now "2006" %}标签。这会直接获取服务器当前年份并显示。例如,完整的版权信息可能是© {% now "2006" %} 您的网站名称。问:如果我希望显示文章的发布时间,格式为
2023年6月30日 12点30分,该怎么做? 答:您可以结合stampToDate函数和Go语言的格式化规则来实现。假设文章发布时间存储在item.CreatedTime中,您可以这样写:{{ stampToDate(item.CreatedTime, "2006年1月2日 15点04分") }}。注意,1代表不带前导零的月份,2代表不带前导零的日期,这提供了更大的灵活性。