AnQiCMS如何将时间戳格式化为可读的日期和时间格式进行显示?

📅 👁️ 66

网站内容更新频繁,每一篇文章、产品或评论都有其创建和更新的时间点。然而,这些时间通常以一串数字——也就是我们常说的时间戳——的形式存储在后台。直接显示这些时间戳对访问者来说并不友好,我们需要将它们转化为一目了然的日期和时间格式。

在 AnQiCMS 中,将这些时间戳格式化为我们习惯的日期和时间格式,其实非常简单直观。系统内置了一个功能强大的模板标签,可以帮助我们轻松实现这一点。

核心工具:stampToDate 标签

AnQiCMS 提供了一个名为 stampToDate 的模板标签,专门用于将 Unix 时间戳(通常是 10 位或 13 位的整数)转换为可读的日期和时间字符串。这个标签的用法非常灵活,它需要两个关键信息:

  1. 待格式化的时间戳: 这通常是您从数据库中获取的 CreatedTimeUpdatedTime 等字段。
  2. 格式化字符串: 这是定义您希望日期和时间显示为何种样式的关键。

它的基本语法是这样的:{{stampToDate(时间戳, "格式化字符串")}}

这里需要特别说明一下“格式化字符串”。AnQiCMS 基于 Go 语言开发,因此它遵循 Go 语言独特的时间格式化规则。与许多其他编程语言使用 Y-m-d H:i:s 这样的占位符不同,Go 语言使用一个特定的参考时间来作为模板:2006-01-02 15:04:05。您只需要记住这个参考时间,并根据您想要显示的格式,将参考时间中的对应部分替换成您期望的样式即可。

例如:

  • 如果您想显示 2023-10-26,那么格式化字符串就是 "2006-01-02"
  • 如果您想显示 2023年10月26日,那么格式化字符串就是 "2006年01月02日"
  • 如果您想显示 2023-10-26 14:30:15,那么格式化字符串就是 "2006-01-02 15:04:05"

实际应用场景

这个 stampToDate 标签在 AnQiCMS 的模板中随处可用。无论您是在显示文章列表、文章详情、用户最近登录时间还是评论发布时间,只要遇到时间戳字段,都可以用它来美化显示。

例如,在文章详情页(通常对应 archiveDetail 标签获取的数据)中显示文章的发布时间和更新时间:

<article>
    <h1>{{ archive.Title }}</h1>
    <p>
        <span>发布于:{{stampToDate(archive.CreatedTime, "2006年01月02日 15:04")}}</span>
        <span>更新于:{{stampToDate(archive.UpdatedTime, "2006-01-02 15:04:05")}}</span>
    </p>
    <div>
        {{ archive.Content|safe }}
    </div>
</article>

在文章列表页(使用 archiveList 标签获取的数据)中,为每一篇文章显示其创建日期:

{% archiveList archives with type="page" limit="10" %}
    {% for item in archives %}
    <li>
        <a href="{{item.Link}}">
            <h5>{{item.Title}}</h5>
            <p>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</p>
        </a>
    </li>
    {% empty %}
    <li>暂无文章内容。</li>
    {% endfor %}
{% endarchiveList %}

在评论列表中显示评论的发布时间:

{% commentList comments with archiveId=archive.Id type="list" limit="6" %}
    {% for item in comments %}
    <div>
        <span>{{item.UserName}}</span> 于 <span>{{stampToDate(item.CreatedTime, "2006年01月02日 15:04")}}</span> 评论道:
        <p>{{item.Content}}</p>
    </div>
    {% endfor %}
{% endcommentList %}

更灵活的格式定制

Go 语言的参考时间格式非常强大,您可以组合其中的元素,以满足各种复杂的日期时间显示需求:

  • 显示星期几: 使用 Mon (星期一的简写) 或 Monday (星期一的全称)。
    • 例如:"2006年01月02日 Monday" 将显示 2023年10月26日 Thursday
  • 显示上午/下午: 使用 PMpm
    • 例如:"15:04 PM" 将显示 02:30 PM (下午 2:30)。
  • 只显示月份和年份:
    • 例如:"2006年01月" 将显示 2023年10月

您可以根据需要,自由组合这些参考元素来创建独特的日期时间格式。

其他日期/时间相关标签和过滤器

除了 stampToDate,AnQiCMS 还提供了其他一些与日期时间相关的辅助功能:

  • 显示当前系统时间: 如果您需要在页面上显示当前服务器的时间,可以使用 {% now "格式化字符串" %} 标签。它同样遵循 Go 语言的格式化规则。
    
    <p>当前时间:{% now "2006年01月02日 15:04:05" %}</p>
    
  • date 过滤器: 对于已经是 Go 语言 time.Time 类型的变量,您也可以使用 date 过滤器进行格式化。不过请注意,date 过滤器仅适用于 time.Time 类型,直接对整数时间戳使用会导致错误。在 AnQiCMS 的模板中,大部分时间数据都是以时间戳形式提供,因此 stampToDate 是处理时间戳的首选方法。

总结来说,AnQiCMS 通过直观的 stampToDate 标签和 Go 语言灵活的参考时间格式,让网站内容的时间显示变得既简单又富有表现力。掌握这个小技巧,能让您的网站内容更具可读性和专业度。


常见问题 (FAQ)

1. 为什么 AnQiCMS 格式化日期时要用 “2006-01-02 15:04:05” 这样的数字组合作为格式化字符串?

这是 Go 语言特有的时间格式化方式。与许多编程语言使用符号(如 Y 代表年份,m 代表月份)不同,Go 语言提供了一个特定的参考时间 2006-01-02 15:04:05(也就是 1 月 2 日下午 3 点 4 分 5 秒,2006 年)作为格式化的“模板”。您只需在格式化字符串中,按照这个参考时间中各个数字所代表的意义,编写出您想要的显示格式,系统就会自动将其应用到实际的时间戳上。例如,想要显示完整的年份,就使用 2006

2. 如果我想显示星期几或者上午/下午,应该怎么设置格式?

要显示星期几,您可以使用参考时间中的 Mon(代表星期一的缩写)或 Monday(代表星期一的全称)。例如,"2006年01月02日 Monday" 会显示 `2023

相关文章

如何在模板中使用if/for标签控制内容的条件显示和循环遍历显示?

在构建和运营网站时,内容的动态展示和灵活管理是提升用户体验和运营效率的关键。安企CMS(AnQiCMS)深知这一点,因此其模板引擎提供了强大而直观的条件判断 (`if`) 和循环遍历 (`for`) 标签,让您能够轻松控制内容的显示逻辑,实现高度定制化的页面布局。 安企CMS的模板语法借鉴了Django模板引擎的简洁风格,学习成本非常低。通过掌握这些核心标签

2025-11-08

AnQiCMS的分页功能如何应用于文章列表或Tag文档列表的分页显示?

在网站内容管理中,无论是展示海量的文章、产品,还是分类下的文档,高效且用户友好的分页功能都至关重要。它不仅能让用户轻松浏览大量内容,避免页面过长导致加载缓慢,也有助于搜索引擎更好地抓取和索引网站信息。安企CMS(AnQiCMS)深谙此道,在模板标签设计上提供了直观而强大的分页功能,使得在文章列表或Tag文档列表中实现分页显示变得轻而易举。 要理解AnQiCMS如何实现分页

2025-11-08

如何在AnQiCMS网站底部显示友情链接列表?

在网站运营中,友情链接扮演着不可或缺的角色。它不仅是网站之间互相引荐、共享流量的有效途径,更是提升网站在搜索引擎中权重和可见度的重要手段。然而,如何便捷地管理和在网站上展示这些链接,是许多网站管理者面临的实际问题。AnQiCMS作为一个专注于企业级内容管理和SEO优化的系统,提供了直观的友情链接功能和灵活的模板调用机制,让这一过程变得异常简单。 ###

2025-11-08

AnQiCMS如何显示网站留言表单,并自定义表单字段的显示?

安企CMS:网站留言表单的灵活展示与字段定制 在网站运营中,留言表单是连接用户与网站的重要桥梁。无论是收集客户反馈、提供咨询服务还是进行用户互动,一个功能完善且易于使用的留言表单都显得尤为重要。安企CMS(AnQiCMS)深谙此道,为用户提供了强大且灵活的留言表单功能,不仅能够轻松地在网站前端展示,更支持深度定制表单字段,以满足各种业务需求。 ### 一、

2025-11-08

如何在模板中定义临时变量来辅助内容的显示逻辑?

在使用安企CMS(AnQiCMS)进行网站内容管理时,模板的灵活性对于实现多样化的内容展示至关重要。很多时候,我们不仅仅需要直接输出数据,还需要根据业务逻辑对数据进行一些临时性的处理、计算或判断,这时候,在模板中定义临时变量就显得尤为实用。这不仅能让模板代码更加整洁,还能避免重复获取或计算相同的数据,从而提升渲染效率和可维护性。 安企CMS的模板引擎语法与Django模板引擎相似

2025-11-08

AnQiCMS如何引用公共的模板代码片段(如页头、页脚)来统一页面显示?

在网站内容运营中,保持页面风格统一,提升用户体验和维护效率至关重要。想象一下,如果您的网站有成百上千个页面,每个页面的页头、页脚或侧边栏都需要手动修改,这将是多么浩大的工程。幸运的是,AnQiCMS 提供了一套强大而灵活的模板机制,能够帮助您轻松引用和管理公共代码片段,确保网站显示的一致性。 AnQiCMS 的模板系统借鉴了 Django 模板引擎的语法,这让它既易于上手又功能强大。它通过 `

2025-11-08

如何使用AnQiCMS的模板继承功能来构建一致的页面骨架和局部内容显示?

在网站建设与运营过程中,如何高效地管理页面布局、确保视觉风格一致,同时又能灵活地调整局部内容,是许多运营者面临的挑战。AnQiCMS 提供了强大的模板继承功能,它能够帮助我们巧妙地解决这些问题,实现网站页面的结构化管理和内容的灵活展示。 ### 理解模板继承的核心概念 想象一下,模板继承就像是建筑设计中的“蓝图”或“母版”。我们首先设计一个通用的页面骨架,它包含了网站所有页面共享的元素

2025-11-08

AnQiCMS如何利用静态缓存技术提升页面加载速度和内容显示效率?

在当今快节奏的网络世界中,网站的加载速度和内容显示效率已成为衡量用户体验和搜索引擎排名的关键指标。一个响应迅速的网站不仅能有效留住访问者,还能在激烈的竞争中脱颖而出。安企CMS(AnQiCMS)深知这一点,通过其内置的静态缓存技术,为用户提供了实现网站疾速访问和高效内容呈现的强大支持。 **理解静态缓存:网站加速的核心机制** 要理解安企CMS如何发挥作用,首先需要明白什么是静态缓存

2025-11-08