如何使用 `stampToDate` 标签将时间戳格式化为自定义的日期和时间格式?

📅 👁️ 61

好的,很高兴为您深入解读 AnQiCMS 的 stampToDate 标签,帮助您轻松驾驭网站上的时间显示。


灵活驾驭时间:利用 AnQiCMS 的 stampToDate 标签定制日期和时间格式

在网站内容管理中,日期和时间的展示方式往往直接影响用户体验和信息传达的清晰度。一个简洁、易读的时间格式能让访客更快地理解内容的时效性。AnQiCMS 作为一个高效的内容管理系统,深知这一点,并为此提供了功能强大且易于使用的 stampToDate 标签,让您能够轻松将数据库中存储的时间戳(Unix Timestamp)格式化为各种自定义的日期和时间格式。

理解时间戳:你的内容时间之源

在 AnQiCMS 内部,很多时间信息,例如文章的发布时间(CreatedTime)、更新时间(UpdatedTime)、评论时间、甚至用户最近登录时间等,都是以时间戳的形式存储的。时间戳通常是一个 10 位的数字,代表从格林威治时间 1970 年 1 月 1 日 00:00:00(UTC)起经过的秒数。例如,1678886400 这样的数字,对于计算机来说很高效,但对于普通访客来说,则难以理解其确切含义。

这就引出了我们对时间格式化的需求,将这些原始数字转换为人们习惯阅读的格式,比如“2023年03月15日 10:00:00”或“3天前”。

stampToDate 标签的核心用法

stampToDate 标签的使用方式非常直观:

{{ stampToDate(时间戳, "格式") }}

这里的关键在于第二个参数——“格式”字符串。与许多其他系统采用 YYYY-MM-DD 这样的占位符不同,AnQiCMS 内部使用的 Go 语言时间格式化标准,有一个固定的“参考时间”。您需要把您期望显示的日期和时间元素替换成这个参考时间对应的部分。这个参考时间就是:

2006-01-02 15:04:05.999999999 -0700 MST (通常简写为 2006-01-02 15:04:05

这就像一个“魔幻数字”,它不是实际的年份,而是 Go 语言用来识别时间元素位置的占位符。您只需要记住,当您想在结果中显示年份,就写 2006;想显示月份,就写 01;想显示日期,就写 02,以此类推。

让我们通过一些常见格式的例子来理解它:

  • 仅显示年份: {{ stampToDate(publishStamp, "2006") }}2023
  • 年-月-日: {{ stampToDate(publishStamp, "2006-01-02") }}2023-03-15
  • 年/月/日: {{ stampToDate(publishStamp, "2006/01/02") }}2023/03/15
  • 月/日/年(常用于国际化): {{ stampToDate(publishStamp, "01/02/2006") }}03/15/2023
  • 时:分:秒(24小时制): {{ stampToDate(publishStamp, "15:04:05") }}10:00:00
  • 年-月-日 时:分: {{ stampToDate(publishStamp, "2006-01-02 15:04") }}2023-03-15 10:00
  • 带中文的完整格式: {{ stampToDate(publishStamp, "2006年01月02日 15时04分05秒") }}2023年03月15日 10时00分00秒
  • 星期几: {{ stampToDate(publishStamp, "Mon") }}Wed (周三)

请注意,格式字符串中的其他字符,如破折号、斜杠、冒号、空格以及中文,都会被原样输出,起到分隔或描述的作用。

stampToDate 应用于你的网站:实际场景举例

stampToDate 标签在 AnQiCMS 的模板开发中无处不在,尤其是在需要展示内容发布或更新时间的场景。

1. 在文档详情页显示发布和更新时间

当您在浏览一篇 AnQiCMS 文章时,通常会看到它的发布日期。假设您在 article/detail.html 模板中,可以使用 archiveDetail 标签获取文档详情,并格式化其中的时间戳。

<article>
    <h1>{% archiveDetail with name="Title" %}</h1>
    <div class="meta-info">
        <span>发布于:{{ stampToDate(archive.CreatedTime, "2006年01月02日 15:04") }}</span>
        <span>更新于:{{ stampToDate(archive.UpdatedTime, "2006-01-02") }}</span>
        <span>浏览量:{% archiveDetail with name="Views" %}</span>
    </div>
    <div class="article-content">
        {% archiveDetail articleContent with name="Content" %}{{ articleContent|safe }}
    </div>
</article>

这段代码将把 archive.CreatedTime 格式化为精确到分钟的中文日期时间,而 archive.UpdatedTime 则只显示到日。

2. 在文档列表页显示文章发布日期

在文章列表页,您可能希望每篇文章旁边都显示其发布日期,以便访客快速了解内容的发布顺序和时效性。

<ul class="article-list">
    {% archiveList archives with type="page" limit="10" %}
        {% for item in archives %}
        <li>
            <a href="{{ item.Link }}">
                <h3>{{ item.Title }}</h3>
                <p>{{ item.Description|truncatechars:100 }}</p>
                <div class="list-meta">
                    <span>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
                    <span>分类:{% categoryDetail with name="Title" id=item.CategoryId %}</span>
                    <span>阅读量:{{ item.Views }}</span>
                </div>
            </a>
        </li>
        {% empty %}
        <li>暂无文章内容。</li>
        {% endfor %}
    {% endarchiveList %}
</ul>

这里,item.CreatedTime 在每次循环中都被格式化为 YYYY-MM-DD 形式。

3. 在评论区显示评论时间

如果您的网站有评论功能,那么每条评论的发布时间也是用户关注的焦点。

”`twig

<h4>用户评论</h4>
{% commentList comments with archiveId=archive.Id type="list" limit="5" %}
    {% for item in comments %}
    <div class="comment-item">
        <strong>{{ item.UserName }}</strong>
        <span class="comment-time">于 {{ stampToDate(item.CreatedTime, "2006-01-02 15:04") }} 评论</span>
        <p>{{ item.Content }}</p>
    </div>
    {% empty %}
    <p>暂无评论。</p>
    {% endfor %}
{%

相关文章

`pagination` 标签如何正确配置才能在列表页生成功能完善的分页导航?

在网站内容管理中,为列表页面配置一个功能完善的分页导航,是提升用户体验和优化网站结构的关键一环。安企CMS(AnqiCMS)提供了简洁而强大的 `pagination` 标签,让开发者能够轻松实现这一需求。 要让 `pagination` 标签在列表页正确生成分页导航,首先要理解它的工作机制以及与内容列表标签(如 `archiveList`)之间的协同关系。`pagination`

2025-11-07

`tagDataList` 标签如何获取并分页展示特定 Tag 下的所有相关文档?

在安企CMS中管理内容时,标签(Tag)是组织和分类信息的重要工具。它不仅能帮助用户快速找到相关主题的内容,还能显著提升网站的内部链接结构和SEO表现。当需要展示某个特定标签下的所有相关文档,并进行分页管理时,`tagDataList` 标签便成为了不可或缺的核心功能。 本文将深入探讨如何高效地利用 `tagDataList` 标签来获取并分页展示特定标签下的文档

2025-11-07

如何在文章详情页使用 `prevArchive` 和 `nextArchive` 标签导航到相邻文档?

在内容驱动的今天,网站文章详情页的用户体验显得尤为重要。当读者沉浸于一篇精彩内容时,如果能顺畅地导航到相关或相邻的文章,不仅能延长他们在网站上的停留时间,提升页面浏览量,还能通过内部链接结构,间接优化搜索引擎的抓取和排名。安企CMS作为一款高效、SEO友好的内容管理系统,充分考虑到了这些细节,并提供了简单直观的模板标签,帮助我们轻松实现这一功能。 今天

2025-11-07

`categoryList` 标签如何实现多级分类的层级显示和嵌套调用?

在AnQiCMS中构建一个清晰、有条理的网站导航,特别是处理多级分类时,是提升用户体验和网站可访问性的关键。`categoryList` 标签正是为此而生,它提供了强大的功能,帮助我们灵活地展示分类的层级结构,并进行精细化的嵌套调用。 ### 理解 `categoryList` 标签的基础 `categoryList` 标签是AnQiCMS模板引擎中的一个核心组件

2025-11-07

`tdk` 标签如何动态生成页面标题、关键词和描述,并灵活控制是否包含网站名称?

在网站运营中,页面标题(Title)、关键词(Keywords)和描述(Description),也就是我们常说的TDK,是搜索引擎优化的基石。它们不仅能帮助搜索引擎理解页面内容,更是吸引用户点击的关键因素。安企CMS(AnQiCMS)深知TDK的重要性,通过其强大的模板标签系统,尤其是万能的`tdk`标签,让动态生成和灵活控制页面TDK变得轻松高效。 ### TDK如何动态生成

2025-11-07

`navList` 标签如何构建包含多级子菜单和关联内容的网站导航?

在构建网站时,一个清晰、易用的导航系统是至关重要的,它直接关系到用户能否快速找到所需信息,也影响着搜索引擎对网站结构的理解。AnQiCMS 提供了强大的 `navList` 标签,让我们能够灵活地构建包含多级子菜单,并能将导航项与网站内容紧密关联起来的导航系统。 接下来,我们将深入探讨如何利用 `navList` 标签,为你的网站打造一套既美观又实用的多级导航。 ### 网站导航的基础

2025-11-07

`breadcrumb` 标签如何创建动态面包屑导航,并定制首页名称和标题显示?

在网站运营中,清晰的导航路径对于用户体验和搜索引擎优化(SEO)都至关重要。面包屑导航(Breadcrumb Navigation)就像网站的小地图,能让访客随时了解自己所处的位置,并方便地返回上一级页面。今天,我们就来深入了解如何在安企CMS中,利用其强大的`breadcrumb`标签,创建动态面包屑导航,并根据我们的需求定制首页名称和标题显示。 ###

2025-11-07

AnQiCMS 后台的文档管理功能如何进行内容筛选、批量替换和回收站操作?

内容管理系统是网站运营的核心,尤其对于内容更新频繁的站点而言,高效的文档管理功能至关重要。AnQiCMS 作为一款功能强大的内容管理系统,提供了丰富而实用的后台文档管理工具,帮助运营者轻松应对日常内容维护工作。本文将深入探讨 AnQiCMS 后台在内容筛选、批量替换和回收站操作方面的功能,助您更高效地管理网站内容。 ### 高效筛选:快速定位目标内容 在海量的网站内容中快速定位所需信息

2025-11-07