如何在模板中动态显示当前年份或当前时间?

📅 👁️ 70

在网站运营中,我们经常需要动态地显示当前年份或时间,例如在网站底部显示最新的版权年份,或者在文章中精确标记页面的生成时间。AnqiCMS 提供了灵活强大的模板功能,让这些操作变得非常简单。接下来,我们将探讨如何在 AnqiCMS 模板中实现这一需求。

动态显示当前年份或时间:使用 now 标签

AnqiCMS 提供了一个非常便捷的内置标签 now,用于在模板渲染时,动态获取并显示当前的日期或时间。这个标签的关键在于其时间格式化字符串,它遵循 Go 语言独特的日期时间格式表示方法,而不是我们常用于 PHP 或 JavaScript 中的 Y-m-d H:i:s 这类格式。

在 Go 语言中,格式化字符串实际上是一个具体的参考时间:2006年01月02日 15时04分05秒。您需要将您想要显示的时间元素的“布局”与这个参考时间的对应部分进行匹配。

以下是一些常用的 now 标签示例及其输出:

  • 仅显示当前年份: 如果您想在网站页脚显示版权年份,可以直接使用:

    © {% now "2006" %} 版权所有。
    

    这会在页面上显示为:© 2023 版权所有。(假设当前年份是 2023)

  • 显示完整日期: 如果需要在页面上展示当前的完整日期,例如 年-月-日 格式:

    今天是:{% now "2006-01-02" %}
    

    页面显示可能为:今天是:2023-10-26

  • 显示完整日期和时间: 如果需要包含精确到秒的时间:

    页面加载于:{% now "2006-01-02 15:04:05" %}
    

    页面显示可能为:页面加载于:2023-10-26 10:30:45

  • 自定义格式显示: 您可以根据需要自由组合,例如显示“年/月/日 星期几 小时:分钟”:

    更新时间:{% now "2006/01/02 Mon 15:04" %}
    

    页面显示可能为:更新时间:2023/10/26 Thu 10:30

此外,now 标签还有一个可选参数 fake,用于在开发和调试时强制显示一个固定的参考时间,方便样式调试或数据展示,例如:

测试时间:{% now "2006-01-02 15:04:05" fake %}

这会显示 Go 语言的参考时间本身,而不是当前系统时间。

格式化已有的时间戳:使用 stampToDate 函数

除了显示当前时间,我们常常还需要显示文章发布时间、更新时间等信息。这些时间通常以时间戳(Unix timestamp)的形式存储在数据库中。AnqiCMS 提供了 stampToDate 函数来帮助我们将这些时间戳格式化为可读的日期或时间。

这个函数接受两个参数:一个 10 位的时间戳(例如从 archive.CreatedTimeitem.UpdatedTime 获取),以及一个与 now 标签相同的 Go 语言格式化字符串。

以下是一些 stampToDate 函数的常用示例:

  • 格式化文章创建日期: 在文章详情页或列表页中,您可以这样显示文章的发布日期:

    发布于:{{ stampToDate(archive.CreatedTime, "2006年01月02日") }}
    

    页面显示可能为:发布于:2023年09月15日

  • 格式化文章更新日期和时间: 如果需要展示精确的更新时间:

    最后更新:{{ stampToDate(item.UpdatedTime, "2006-01-02 15:04") }}
    

    页面显示可能为:最后更新:2023-10-25 18:00

  • 仅显示时间: 您可以仅提取时间部分进行显示:

    具体时间:{{ stampToDate(archive.CreatedTime, "15:04") }}
    

    页面显示可能为:具体时间:10:30

archive.CreatedTimeitem.UpdatedTime 是 AnqiCMS 模板中常见的变量,它们分别代表当前文档(或列表中的某个条目)的创建时间和更新时间的时间戳。

实际应用场景

  • 网站页脚版权信息: 最常见的用途之一,确保版权年份自动更新:

    <footer>
        <p>&copy; {% now "2006" %} All Rights Reserved. {{ system.SiteName }}</p>
    </footer>
    
  • 文章发布/更新元信息: 在文章标题下方或侧边栏显示关键时间信息:

    <div class="article-meta">
        <span>发布日期:{{ stampToDate(archive.CreatedTime, "2006年01月02日") }}</span>
        <span>更新日期:{{ stampToDate(archive.UpdatedTime, "2006-01-02 15:04") }}</span>
    </div>
    
  • 动态页面提示: 例如在某个列表页或工具页显示数据更新的实时性:

    <p>数据最后更新于:{% now "2006-01-02 15:04" %}</p>
    

通过 now 标签和 stampToDate 函数,AnqiCMS 模板在处理日期和时间显示方面提供了强大的灵活性,无论是获取当前时间还是格式化已有的时间戳,都能够轻松应对,让您的网站内容保持时效性和专业性。

常见问题 (FAQ)

1. 为什么 AnqiCMS 模板中的日期格式化字符串是 2006-01-02 15:04:05 这种形式,而不是常见的 YYYY-MM-DD

这是因为 AnqiCMS 的模板引擎基于 Go 语言,而 Go 语言的日期时间格式化功能使用一个固定的参考时间 2006-01-02 15:04:05.999999999 -0700 MST(即 2006 年 1 月 2 日 下午 3 点 4 分 5 秒)来定义布局。您需要将您想要显示的日期时间元素(如年、月、日、时、分、秒)与这个参考时间中的对应数字进行匹配,而不是像其他语言那样使用占位符。例如,要显示年份,您就写 2006,而不是 YYYY

2. 我可以直接在 {{ ... }} 中使用 {% now "2006" %} 这样的语法吗?

不可以。在 AnqiCMS 模板中,{{ ... }} 用于输出变量的值,而 {% ... %} 用于执行控制逻辑或调用标签。now 是一个标签,所以必须使用 {% now ... %} 的语法来调用。如果您想将 now 标签的结果赋值给一个变量再输出,可以使用 {% set current_year = now "2006" %} 然后在 {{ current_year }} 中输出,但直接使用 {% now "2006" %} 通常更简洁。

3. 除了显示年份和完整的日期时间,我还能如何显示当前月份、星期几或其他特定时间元素?

您只需参照 Go 语言的格式化布局,找到对应的时间元素并将其放入您的格式化字符串中。例如:

相关文章

如何在前台页面安全地显示包含HTML标签的富文本内容?

在网站运营中,我们经常需要展示包含图片、链接、加粗文本等丰富格式的内容,也就是所谓的富文本内容。但在前台页面安全地显示这些带有HTML标签的富文本,是一项既实用又需要谨慎处理的任务。安企CMS作为一款高效的内容管理系统,充分考虑了这一点,并为我们提供了清晰的解决方案。 ### 了解安企CMS中的富文本内容 当我们在安企CMS的后台编辑器中撰写文章、产品描述或单页面内容时

2025-11-07

如何使用模板中的`if`、`for`等逻辑标签控制内容的条件显示和循环显示?

在网站内容管理中,展示动态且多样化的内容是提升用户体验和网站吸引力的关键。安企CMS(AnQiCMS)提供了强大的模板系统,借鉴了Django模板引擎的语法,让您能够轻松地通过逻辑标签来控制内容的显示。其中,`if` 标签用于条件判断,而 `for` 标签则用于循环遍历,它们是构建灵活多变页面的基石。 ### 灵活的条件判断:`if` 逻辑标签的妙用 `if`

2025-11-07

如何将文章标题或简介截断并显示省略号?

在网站内容运营中,标题和简介是吸引访问者点击和了解详情的重要元素。尤其在列表页、推荐位或首页展示中,有限的空间使得我们必须对这些内容进行精炼和裁剪。为了保持页面的整洁美观,同时又能完整传达核心信息,对过长的文章标题或简介进行截断,并以省略号“...”结尾,是一种常用的优化策略。AnQiCMS(安企CMS)为我们提供了灵活且强大的工具来实现这一需求。 ### 为什么要对标题和简介进行截断处理

2025-11-07

如何在前台展示文章内容中的自定义参数列表?

AnQiCMS作为一个高效且可定制的内容管理系统,提供了强大的内容模型功能,让我们可以根据不同业务需求为文章添加各种自定义字段。这些自定义参数不仅能让文章内容更加丰富和结构化,还能在前台页面进行个性化展示,极大地提升了网站的灵活性和用户体验。 今天,我们就来深入探讨如何在AnQiCMS的前台页面,灵活地展示文章中的这些自定义参数列表。 ### 后台准备:定义自定义参数 在AnQiCMS中

2025-11-07

怎样将Go语言的高并发特性体现在前台页面加载速度上?

在当今快节奏的网络世界,网站加载速度已成为用户体验和搜索引擎排名的核心要素。没有人喜欢等待一个迟钝的页面,而搜索引擎也倾向于将快速响应的网站排在前面。那么,如何才能让你的网站像闪电般迅速呢?对于安企CMS(AnQiCMS)的用户而言,答案就藏在它强大的Go语言底层架构中,尤其是Go语言引以为傲的高并发特性。 ### Go语言带来的底层加速:为前端加载注入澎湃动力 首先

2025-11-07

如何在模板中引用并显示外部静态资源(如CSS、JS)?

在 AnQiCMS 的模板中引用和显示外部静态资源,如 CSS 样式表和 JavaScript 脚本,是构建功能完善、视觉美观网站的关键步骤。了解其工作原理和推荐的做法,能让我们的网站开发工作更加高效和灵活。 ### 静态资源存放位置 在使用 AnQiCMS 构建网站时,样式表(CSS)、JavaScript 脚本(JS)以及图片等静态文件是构成网站视觉和交互体验不可或缺的部分

2025-11-07

如何在AnQiCMS模板中定义和使用变量进行内容显示?

安企CMS(AnQiCMS)凭借其基于Go语言的高效架构和灵活的模板机制,让内容呈现变得既强大又直观。在网站内容运营中,我们经常需要展示动态信息,比如文章标题、产品价格、联系方式等,这就离不开在模板中定义和使用变量。理解如何在AnQiCMS模板中灵活运用变量,是搭建和维护高效、富有个性化网站的关键。 安企CMS的模板引擎借鉴了Django的语法,它使得变量的定义和引用变得非常易于理解。基本上

2025-11-07

如何将图片资源进行分类管理,并在前台按分类显示?

图片是网站内容不可或缺的一部分,它们不仅能美化页面,还能有效传达信息,提升用户体验。然而,随着网站图片数量的增长,如何高效地管理这些图片资源,并灵活地在前台页面按需展示,成为了许多网站运营者面临的挑战。安企CMS(AnQiCMS)深谙此道,提供了一套直观且功能强大的图片资源管理系统,帮助我们轻松驾驭这些视觉元素。 ### 图片资源的后台分类管理:让一切井井有条 在安企CMS中

2025-11-07