如何在AnQiCMS模板中显示当前时间和格式化时间戳?

📅 👁️ 65

在网站内容中展示时间,无论是文章发布日期、产品更新时间,还是页面实时加载时间,都能大大提升用户体验和信息的时效性。AnQiCMS作为一个基于Go语言开发的内容管理系统,在模板中处理时间和日期非常直观和灵活。这篇文章将向你介绍如何在AnQiCMS模板中显示当前时间和格式化存储的时间戳。


一、在页面上显示当前实时时间

如果你需要在页面上显示用户访问时的实时时间,AnQiCMS提供了一个简洁的{% now %}标签来帮助你实现。这个标签的作用是获取并显示服务器当前的日期和时间。

它的用法十分直接,只需要在标签后跟着一个字符串,这个字符串就是你希望时间显示的格式。

基本用法示例:

<p>页面加载时间:{% now "2006年01月02日 15:04:05" %}</p>

你可能注意到,这里的时间格式字符串“2006年01月02日 15:04:05”看起来有些特别,它不是我们常见的Y-m-d H:i:s,而是Go语言特有的日期时间格式化方式。你只需要记住这个基准时间“2006-01-02 15:04:05”作为模板,然后根据你需要显示的部分来替换其中的数字和符号,就可以构建你想要的格式了。

例如,如果你只想要显示当前的年份,可以这样写:

<p>当前年份:{% now "2006" %}</p>

如果想显示完整的年月日时分秒:

<p>当前时间:{% now "2006-01-02 15:04:05" %}</p>

这个{% now %}标签非常适合用于在页脚显示版权年份,或者在页眉显示一个动态的欢迎时间等场景。


二、格式化显示存储的时间戳

在AnQiCMS中,文章、产品或其他内容在发布或更新时,其时间信息(例如CreatedTimeUpdatedTime)通常以10位Unix时间戳的形式存储在数据库中。为了在前端页面上清晰、易读地展示这些时间,我们需要使用{{stampToDate}}函数进行格式化。

这个函数接收两个参数:第一个是要格式化的10位时间戳,第二个是与{% now %}标签相同的Go语言时间格式字符串。

基本用法示例(以文章发布时间为例):

假设你正在使用archiveListarchiveDetail标签来获取文章数据,其中archive.CreatedTime就是文章的创建时间戳。

<p>文章发布于:{{ stampToDate(archive.CreatedTime, "2006-01-02") }}</p>

如果你希望显示文章的更新时间,并且只在更新时间与创建时间不同时才显示,可以这样处理:

{% if archive.UpdatedTime != archive.CreatedTime %}
<p>最近更新于:{{ stampToDate(archive.UpdatedTime, "2006年1月2日 15:04") }}</p>
{% endif %}

这里,我们首先判断UpdatedTime是否与CreatedTime不同,以避免重复显示相同的时间。如果存在差异,再使用{{stampToDate}}函数将其格式化为我们需要的样式。


三、掌握Go语言的时间格式化模板

无论是在{% now %}标签还是{{stampToDate}}函数中,时间格式化的核心都在于Go语言的基准时间模板。记住“2006-01-02 15:04:05”这个特定的日期和时间,并用它作为你的“参照物”来构建你需要的格式。

这里是一些常用格式字符串及其对应的输出效果,帮助你快速理解和应用:

  • “2006-01-02”:输出完整的年月日,例如 “2023-10-26”
  • “15:04:05”:输出时分秒,例如 “10:30:45”
  • “2006年01月02日”:输出中文的年月日,例如 “2023年10月26日”
  • “01/02 15:04”:输出月日和时分,例如 “1026 10:30”
  • “Mon Jan _2 15:04:05 2006”:输出完整的英文日期和时间,例如 “Thu Oct 26 10:30:45 2023”
  • “Monday, 02-Jan-06 15:04:05 MST”:另一种英文日期时间格式,例如 “Thursday, 26-Oct-23 10:30:45 CST”
  • “3:04PM”:12小时制时间,例如 “10:30AM”
  • ”_2”:单独的日期,例如 “26”

你可以根据页面设计和用户需求,自由组合这些元素,创建出各种各样的时间显示效果。


四、综合应用示例

让我们通过一个简单的模板片段,看看如何在实际页面中结合使用这些时间显示和格式化方法:

<main>
    <header>
        <h1>AnQiCMS 网站首页</h1>
        <p>当前服务器时间:{% now "2006年01月02日 星期一 15:04:05" %}</p>
    </header>

    <section class="latest-articles">
        <h2>最新文章</h2>
        {% archiveList articles with type="list" limit="3" %}
            {% for article in articles %}
                <article class="article-card">
                    <h3><a href="{{ article.Link }}">{{ article.Title }}</a></h3>
                    <p class="article-meta">
                        发布于:{{ stampToDate(article.CreatedTime, "2006-01-02 15:04") }}
                        {% if article.UpdatedTime != article.CreatedTime %}
                        <span>(更新于:{{ stampToDate(article.UpdatedTime, "2006年1月2日") }})</span>
                        {% endif %}
                    </p>
                    <p>{{ article.Description|truncatechars:100 }}</p>
                    <a href="{{ article.Link }}">阅读更多</a>
                </article>
            {% endfor %}
            {% empty %}
            <p>暂时没有文章可供显示。</p>
        {% endarchiveList %}
    </section>

    <footer>
        <p>&copy; {% now "2006" %} AnQiCMS. 版权所有。</p>
    </footer>
</main>

在这个示例中,我们展示了如何在页眉显示实时的精确时间,如何在文章列表中显示文章的发布日期和有条件的更新日期,并在页脚动态显示当前的年份。这些都通过AnQiCMS提供的灵活标签和函数轻松实现。

通过{% now %}标签获取实时时间,以及{{stampToDate}}函数格式化存储的时间戳,AnQiCMS为你的网站提供了强大而易用的时间显示功能。掌握这些技巧,将帮助你更好地构建动态且信息丰富的网站。


常见问题 (FAQ)

1. Go语言的时间格式化规则为什么这么特别,我总是记不住“2006-01-02 15:04:05”?

Go语言的时间格式化确实

相关文章

AnQiCMS模板宏函数(macro)与include标签的适用场景分别是什么?

在 AnQiCMS 的模板开发中,为了提高代码复用性、降低维护成本,我们经常会用到一些强大的模板功能,其中“宏函数(macro)”和“Include 标签”便是两位得力助手。它们各自拥有独特的优势和适用场景,理解并恰当运用,能让模板开发事半功倍,构建出高效、易于维护的网站。 ### 宏函数(Macro):封装可复用的动态逻辑 宏函数在模板开发中,就像编程语言里的函数一样

2025-11-07

AnQiCMS模板继承功能如何实现页面骨架的复用?

在网站建设与运营中,我们常常面临一个挑战:如何既能保证网站整体风格的一致性,又能灵活地修改各个页面的特定内容,同时还要兼顾开发效率与后期维护的便捷性?AnQiCMS 提供了一套强大而直观的模板继承机制,这正是解决这些问题的核心。它就像为你的网站打造了一个“母版”,让你可以轻松复用公共结构,专注于内容创作。 ### 理解模板继承的核心原理 简单来说,AnQiCMS

2025-11-07

如何在AnQiCMS模板中引入外部HTML片段(include)?

在AnQiCMS中构建网站模板时,我们常常会遇到一些需要重复使用的HTML代码块,比如网站的页头、页脚、侧边栏导航、广告位或者是一些通用的内容模块。如果每次都在不同的模板文件中重复编写这些代码,不仅效率低下,而且一旦需要修改,就得逐个文件去查找和更新,维护起来会非常麻烦。 为了解决这个问题,AnQiCMS提供了强大的模板功能,其中就包括了引入外部HTML片段的能力

2025-11-07

AnQiCMS模板中的变量输出和逻辑控制标签有什么区别?

在AnQiCMS模板开发中,我们经常会与两种核心的模板元素打交道:变量输出标签和逻辑控制标签。它们虽然都服务于将动态内容呈现在用户面前,但在功能定位、语法形式和实际作用上有着本质的区别。理解并掌握它们的异同,是高效构建AnQiCMS网站模板的关键。 ### 变量输出标签(`{{ ... }}`):数据展示的直接窗口 想象一下,你的网站是一个精美的橱窗,而变量输出标签,就好比橱窗里陈列的商品

2025-11-07

AnQiCMS模板如何自定义变量并赋值使用(with/set)?

在AnQiCMS模板中,灵活地自定义和使用变量是实现动态内容和高效模板复用的关键。AnQiCMS的模板语法借鉴了Django和Blade等流行模板引擎的特性,使得变量的定义和赋值直观且强大。本文将深入探讨`with`和`set`这两个标签,帮助您更好地在AnQiCMS模板中自定义变量并加以利用。 ### 一、变量自定义的基石:理解模板语法的核心 在AnQiCMS模板中

2025-11-07

如何使用`archiveList`标签在AnQiCMS首页展示最新文章列表?

在AnQiCMS中,网站的首页常常是访客了解网站内容的第一扇窗。如何高效、动态地展示最新的文章,吸引访客持续浏览,是内容运营的关键。AnQiCMS提供了灵活易用的模板标签系统,其中`archiveList`标签就是实现这一目标的核心工具。 ### 理解`archiveList`标签的核心作用 `archiveList`标签是AnQiCMS模板系统中的一个强大工具

2025-11-07

AnQiCMS如何获取指定分类下的文章列表并进行分页?

在网站内容运营中,我们常常需要展示特定分类下的文章,并为这些列表提供分页功能,以提升用户体验和网站加载效率。安企CMS(AnQiCMS)凭借其灵活的模板引擎和强大的标签系统,能够轻松实现这一需求。 AnQiCMS的模板系统采用了类似Django模板引擎的语法,使用双花括号 `{{变量}}` 引用变量,以及单花括号加百分号 `{% 标签 %}` 调用标签。这使得内容展示的定制化变得非常直观

2025-11-07

`archiveDetail`标签在文章详情页有哪些常用字段可以调用?

安企CMS(AnQiCMS)以其灵活性和强大的内容管理能力,为网站运营者提供了极大的便利。当我们精心制作了一篇文章或产品页面,并希望将其丰富多彩的内容准确无误地展示给访客时,`archiveDetail`标签便是我们手中不可或缺的利器。它如同一个信息的宝库,让我们能够轻松地在文章详情页中调用当前内容的所有相关数据。 在文章详情页的模板中,很多时候可以直接通过`{{archive

2025-11-07