如何在AnqiCMS模板中格式化时间戳,以自定义日期和时间的显示格式?

📅 👁️ 69

在AnqiCMS中管理网站内容,我们经常需要展示文章的发布时间、更新时间,或是用户的注册与登录时间等。这些时间信息通常以“时间戳”的形式存储在数据库中,也就是一串数字。如果直接在网站前端显示这些数字,不仅不直观,也缺乏美观度。好在AnqiCMS提供了非常灵活的模板标签,让我们能够轻松地将这些时间戳格式化成我们想要的日期和时间显示格式。

AnqiCMS的模板系统,借鉴了Django模板引擎的语法风格,功能强大且易于上手。它内置了一个专门用于格式化时间戳的标签——stampToDate,通过这个标签,我们可以将原始的时间戳转化为各种自定义的日期和时间字符串,无论是显示年份、月份、日期,还是精确到小时、分钟、秒,都能轻松实现。

理解AnqiCMS的时间戳和格式化模式

在深入了解stampToDate标签之前,我们首先需要知道AnqiCMS模板中时间戳的来源以及它的格式化机制。时间戳通常是一个10位或13位的整数(Unix时间戳),代表从1970年1月1日00:00:00 UTC到当前时间的秒数或毫秒数。AnqiCMS的stampToDate标签主要处理10位的秒级时间戳。

而格式化模式,则是AnqiCMS特有的、基于Go语言风格的“布局字符串”。与我们常见的Y-m-d H:i:s这类模式不同,Go语言使用一个特定的参考日期——2006年01月02日15时04分05秒来定义日期和时间的各个部分。这意味着,你想要显示“年”,就写“2006”;想要显示“月”,就写“01”;想要显示“日”,就写“02”,以此类推。

下面是一些常用的格式化模式示例,方便我们理解和使用:

  • 年份: 2006
  • 月份(两位数字): 01
  • 月份(缩写): Jan
  • 月份(完整): January
  • 日期(两位数字): 02
  • 星期(缩写): Mon
  • 星期(完整): Monday
  • 小时(24小时制): 15
  • 小时(12小时制): 0304
  • 分钟: 04
  • 秒数: 05
  • AM/PM: PMpm

你可以根据这些“参考值”自由组合,来创建任何你想要的日期时间格式。

核心操作:使用stampToDate标签

stampToDate标签的使用方法非常直观,它的基本语法是:

{{ stampToDate(时间戳变量, "格式化模式字符串") }}

这里,时间戳变量通常是从后端获取到的数据字段,比如文章对象的CreatedTime(创建时间)或UpdatedTime(更新时间),用户对象的LastLogin(上次登录时间)等。格式化模式字符串就是我们上面提到的,根据Go语言风格组合的日期时间布局。

让我们通过一些实际的例子来看看如何应用:

假设我们正在循环显示一个文章列表,其中每篇文章都有一个CreatedTime字段,它是一个时间戳。

{% archiveList archives with type="list" limit="5" %}
    {% for item in archives %}
    <div class="article-card">
        <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
        <p class="description">{{item.Description}}</p>
        <p class="meta">
            <!-- 显示为 "2023-10-26" -->
            发布于:<span>{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
            <!-- 显示为 "2023年10月26日" -->
            <span>{{stampToDate(item.CreatedTime, "2006年01月02日")}}</span>
            <!-- 显示为 "10-26" -->
            <span>{{stampToDate(item.CreatedTime, "01-02")}}</span>
            <!-- 显示为 "15:30:45" -->
            <span>{{stampToDate(item.CreatedTime, "15:04:05")}}</span>
            <!-- 显示为 "Oct 26, 2023" -->
            <span>{{stampToDate(item.CreatedTime, "Jan _2, 2006")}}</span>
        </p>
    </div>
    {% endfor %}
{% endarchiveList %}

在文章详情页,我们可能需要显示文章的详细发布和更新时间:

{% archiveDetail archive with name="Id" %} {# 假设这里获取了当前文章详情 #}
<article>
    <h1>{{archive.Title}}</h1>
    <p class="info">
        发布时间:<span>{{stampToDate(archive.CreatedTime, "2006-01-02 15:04:05")}}</span>
        更新时间:<span>{{stampToDate(archive.UpdatedTime, "2006年01月02日 星期一 下午03点04分")}}</span>
    </p>
    <div class="content">
        {{archive.Content|safe}}
    </div>
</article>

甚至在需要显示用户信息的场景,比如用户的上次登录时间:

{% userDetail userInfo with name="Id" id="1" %} {# 假设获取了ID为1的用户信息 #}
<div class="user-profile">
    <h2>{{userInfo.UserName}}</h2>
    <p>注册时间:<span>{{stampToDate(userInfo.CreatedTime, "2006年01月02日")}}</span></p>
    <p>上次登录:<span>{{stampToDate(userInfo.LastLogin, "2006/01/02 15:04")}}</span></p>
</div>

通过这些例子,我们可以看到stampToDate标签的强大之处,它让时间信息的展示变得异常灵活。

实用小贴士

  • 记住Go语言的参考日期: “2006年01月02日15时04分05秒”是理解所有时间格式的关键。你想要哪个部分,就用这个参考日期中对应的数字或文本来表示。
  • 时间戳的来源: AnqiCMS的文档模型(archive)、分类模型(category)、用户模型(user)等,通常都包含CreatedTimeUpdatedTime这类时间戳字段。在调用相应标签时,你可以很方便地获取到这些时间戳。
  • 确保是时间戳: stampToDate标签专门用于处理时间戳。如果你的数据字段本身已经是格式化的日期字符串(例如“2023-10-26”),那么就不需要使用stampToDate,可以直接输出。如果你不确定某个字段是否为时间戳,可以尝试使用{{ item.CreatedTime|dump }}来查看其类型和值,

相关文章

AnqiCMS模板如何通过for循环标签遍历数据,在前台展示列表内容?

在现代网站建设中,内容列表无处不在,无论是文章列表、产品展示、用户评论,还是导航菜单,都离不开高效地组织和呈现数据。AnqiCMS作为一款基于Go语言的企业级内容管理系统,在模板制作方面提供了直观且强大的循环标签,让您能够轻松地在前台展示各类列表内容。 AnqiCMS的模板引擎采用了与Django和Blade语法相似的设计理念,这意味着对于许多熟悉Web开发的同行来说,上手会非常快

2025-11-09

AnqiCMS模板如何通过if/else标签进行条件判断,动态显示不同内容?

在网站内容运营中,我们常常需要根据不同的条件,灵活地展示不同的内容模块或样式,以此来提升用户体验和页面互动性。安企CMS(AnqiCMS)提供了强大的模板标签功能,其中 `if/else` 条件判断标签便是实现这一目标的核心工具。通过它,我们可以轻松地让网站内容根据特定规则“活”起来,不再是千篇一律的静态展示。 ### AnqiCMS模板中的条件判断基础:`if`

2025-11-09

如何在AnqiCMS模板中实现分页导航,并自定义显示页码数量和样式?

在内容管理系统中,尤其是当网站承载了大量文章、产品或其他列表信息时,合理的分页导航是提升用户体验、方便内容浏览的关键。它不仅能帮助访问者快速找到所需信息,还能避免单页内容过长导致加载缓慢,对搜索引擎优化(SEO)也大有裨益。AnqiCMS 提供了一套强大且灵活的模板标签,让您能够轻松地在网站中实现分页功能,并按需自定义其显示方式和样式。 ### 开启分页功能:从列表标签开始 在

2025-11-09

如何在前台页面展示AnqiCMS后台管理的友情链接,并控制Nofollow属性?

在网站运营中,友情链接是提升网站权重、吸引流量和加强行业关联的重要手段。然而,如何有效地管理这些链接,特别是在搜索引擎优化(SEO)方面,确保其既能发挥积极作用,又不会对自身网站造成负面影响,是许多运营者关心的问题。AnqiCMS作为一个致力于提供高效、可定制解决方案的内容管理系统,在这方面提供了非常便捷且灵活的工具。 今天,我们就来聊聊如何在AnqiCMS的前台页面展示后台管理的友情链接

2025-11-09

如何在AnqiCMS模板中使用with或set标签定义变量,以优化内容显示和维护?

在AnqiCMS的模板开发中,为了让我们的网站内容展示更加灵活、代码更易维护,变量的定义和使用是不可或缺的技巧。系统采用的是类似Django模板引擎的语法,其中`with`和`set`标签就是我们定义变量,优化内容显示和管理模板的得力助手。理解并善用它们,能让您的网站运营事半功倍。 ### 为什么我们需要在模板中定义变量? 想象一下,您的网站有多个页面需要显示相同的公司电话号码或版权信息

2025-11-09

如何通过AnqiCMS模板的include标签,引入公共代码片段,实现页面结构的复用?

在网站内容管理中,我们常常会遇到需要将相同的内容块,如页头、页脚、侧边栏或导航菜单,展示在多个页面上的情况。如果每次都复制粘贴这些代码,不仅效率低下,在需要修改时,更要面对在多个文件中重复操作的繁琐。长此以往,网站内容的维护和更新将变得异常困难,甚至容易出现不一致的体验。 幸运的是,安企CMS(AnqiCMS)为我们提供了优雅的解决方案,其中核心就是它模板引擎中的`include`标签

2025-11-09

如何通过AnqiCMS模板的extends标签实现模板继承,统一网站的视觉风格?

在网站运营中,保持一致的视觉风格是品牌形象和用户体验的关键。设想一下,如果您的网站每个页面布局都不一样,导航位置变来变去,用户会感到困惑,甚至流失。幸运的是,AnqiCMS 提供了一种强大而优雅的方式来解决这个问题——那就是通过模板继承机制中的 `extends` 标签。 AnqiCMS 采用了类似 Django 的模板引擎语法,这使得模板开发变得直观且高效。`extends`

2025-11-09

AnqiCMS如何确保在开启Markdown编辑器后,数学公式和流程图能在前台正确显示?

在内容创作日益多样化的今天,网站不仅承载着文字和图片,也常常需要展示复杂的数学公式或直观的流程图。对于使用安企CMS(AnqiCMS)的朋友们来说,好消息是系统已经内置了强大的Markdown编辑器支持,并且通过简单的配置,就能确保这些专业内容在网站前台得到完美呈现。下面,我们就来一起看看如何操作,让你的网站内容更加丰富和专业。 ### 开启Markdown编辑器

2025-11-09