如何在AnQiCMS模板中使用过滤器将时间戳转换为可读日期格式?

📅 👁️ 64

在网站运营中,我们经常需要在前端页面展示各种时间信息,比如文章发布日期、内容更新时间或者用户评论时间。AnQiCMS作为一个企业级内容管理系统,在数据存储时通常会采用Unix时间戳这种高效简洁的格式。然而,对于访问网站的用户来说,一串数字时间戳显然不够直观和友好。那么,如何在AnQiCMS的模板中,将这些时间戳转换为易于阅读的日期格式呢?

AnQiCMS提供了一个非常实用的内置标签和过滤器,让这一转换过程变得简单快捷,即便您不深入了解Go语言的底层细节,也能轻松实现。

理解AnQiCMS模板中的时间戳

在AnQiCMS内部,像文章的 CreatedTime(创建时间)和 UpdatedTime(更新时间)、评论的 CreatedTime、用户登录日志的 LastLogin 等字段,其值通常以10位或更多位数的Unix时间戳形式存储。这是一个表示从1970年1月1日00:00:00 UTC(协调世界时)起经过的秒数的整数。这种存储方式便于系统进行排序、比较和跨时区处理,但在展示给用户时,我们更希望看到“2023年10月27日”或“上午10:30”这样的格式。

核心工具:stampToDate 标签/过滤器

AnQiCMS为我们提供了 stampToDate 这个强大的标签,它能够直接在模板中将时间戳转换为我们需要的可读日期格式。

它的基本使用语法非常直观: {{ stampToDate(您的时间戳变量, "目标日期格式字符串") }}

这里有两个关键部分:

  1. 您的时间戳变量:这通常是您从 archiveListarchiveDetail 或其他数据标签中获取到的包含时间戳的字段,例如 item.CreatedTimearchive.UpdatedTime
  2. 目标日期格式字符串:这是决定日期最终显示样式的字符串。与一些其他编程语言不同,Go语言(AnQiCMS底层开发语言)的日期格式化字符串是基于一个固定的“参照时间”来定义的,而不是使用像Y-m-d H:i:s这样的占位符。这个神奇的参照时间是:2006-01-02 15:04:05

这意味着:

  • 2006代表年份
  • 01代表月份(January)
  • 02代表日期
  • 15代表24小时制的小时
  • 04代表分钟
  • 05代表秒

您只需将这个参照时间中的数字替换成您想要的格式符号即可。例如:

  • 要显示 年-月-日"2006-01-02"
  • 要显示 年/月/日"2006/01/02"
  • 要显示 年 月 日 (中文)"2006年01月02日"
  • 要显示 时:分:秒"15:04:05"
  • 要显示 完整的日期和时间"2006-01-02 15:04:05"
  • 要显示 简短的月日"01-02"
  • 要显示 上午/下午时分"03:04 PM"(注意,这里的03代表12小时制的小时,PM表示上午/下午)

在AnQiCMS模板中的实际应用

让我们通过一个具体的例子来看看如何在文章列表和文章详情页中使用 stampToDate

假设您有一个文章列表页面,并且希望显示每篇文章的发布时间和更新时间,以及在文章详情页显示详细的发布时间。

文章列表模板示例 ({模型table}/list.html 或首页 index.html 部分)

<div class="articles-list">
    {% archiveList archives with type="page" limit="10" %}
        {% for item in archives %}
        <article class="article-item">
            <h2><a href="{{item.Link}}">{{item.Title}}</a></h2>
            <div class="article-meta">
                <span>发布于:{{ stampToDate(item.CreatedTime, "2006年01月02日") }}</span>
                <span>更新于:{{ stampToDate(item.UpdatedTime, "2006/01/02 15:04") }}</span>
                <span>阅读量:{{item.Views}}</span>
            </div>
            <p class="article-description">{{item.Description}}</p>
            <a href="{{item.Link}}" class="read-more">阅读更多</a>
        </article>
        {% empty %}
        <p>暂时没有内容。</p>
        {% endfor %}
    {% endarchiveList %}

    {# 如果是分页列表,别忘了加上分页导航 #}
    <div class="pagination-controls">
        {% pagination pages with show="5" %}
            {# 分页代码略,参考AnQiCMS分页标签文档 #}
        {% endpagination %}
    </div>
</div>

在这个示例中:

  • item.CreatedTime 被格式化为“xxxx年xx月xx日”。
  • item.UpdatedTime 被格式化为“xxxx/xx/xx xx:xx”。

文章详情模板示例 ({模型table}/detail.html)

”`twig

<h1>{{archive.Title}}</h1>
<div class="article-info">
    <span>发布时间:{{ stampToDate(archive.CreatedTime, "2006年01月02日 15时04分05秒") }}</span>
    <span>更新时间:{{ stampToDate(archive.UpdatedTime, "2006-01-02 15:04:05") }}</span>
    <span>阅读量:{{archive.Views}}</span>
</div>
<div class="article-content">
    {{archive.Content|safe}}
</div>

<div class="article-tags">
    {% tagList tags with itemId=archive.Id limit="5" %}
        {% for tag in tags %}
        <a href="{{tag.Link}}">{{tag.Title}}</a>
        {% endfor %}
    {% endtagList %}
</div>

<div class="navigation-links">
    {% prevArchive prev %}
        {% if prev %}<a href="{{prev.Link}}">上一篇:{{prev.Title}}</a>{% else %}<span>没有上一篇了</span>{% endif %}
    {% endprevArchive %}
    {% nextArchive next %}

相关文章

AnQiCMS如何自动提取文章内容的第一张图片作为缩略图显示?

在内容运营中,为每篇文章匹配一个合适的缩略图,不仅能提升网站的视觉吸引力,也能在信息流中快速抓住用户的注意力。然而,手动为每篇文章上传和调整缩略图,尤其是在内容量庞大的情况下,无疑是一项耗时费力的工作。安企CMS深知这一痛点,提供了一套智能且高效的缩略图自动提取机制,让内容发布变得更加省心。 ### 智能提取:让缩略图自动生成 当您在安企CMS后台编辑并发布文章时

2025-11-08

如何在文章详情页中获取并显示文章的自定义参数(如作者、来源)?

在安企CMS中管理和展示内容,文章详情页无疑是用户获取信息的核心阵地。除了文章标题、正文这些基本要素,很多时候我们还需要在详情页中展示一些个性化的信息,比如文章的作者、内容来源、产品规格、发布地点等。这些信息在安企CMS中被称为“自定义参数”,它们能够极大丰富内容的维度,并满足不同业务场景的个性化需求。 安企CMS提供了非常灵活的方式来定义和显示这些自定义参数,让网站运营者可以根据实际需要

2025-11-08

AnQiCMS如何管理图片资源并按分类显示,方便前台调用?

在网站内容运营中,图片是吸引用户、传达信息不可或缺的元素。高效地管理这些图片资源,并能灵活地在前台页面中调用,对于提升网站的用户体验和运营效率至关重要。AnQiCMS在这方面提供了一套全面而灵活的解决方案,让图片资源的管理和调用变得简单有序。 ### 图片资源的统一管理与分类 AnQiCMS 为网站的图片资源提供了一个集中的管理平台,您可以轻松地上传、存储和组织所有视觉内容。在后台管理界面

2025-11-08

如何在文章列表中显示每篇文章的缩略图?

在内容运营中,文章列表页的缩略图扮演着至关重要的角色。它们不仅能迅速吸引访客的注意力,提升点击率,还能让页面内容一目了然,极大地改善用户体验。安企CMS(AnQiCMS)作为一款功能全面的内容管理系统,提供了非常灵活且易于操作的方式来实现在文章列表中显示每篇文章的缩略图。接下来,我们来详细探讨如何实现这一功能。 ### 为什么缩略图如此重要? 想象一下,您正在浏览一个新闻网站

2025-11-08

AnQiCMS如何实现文章列表的筛选功能,根据自定义参数显示不同结果?

在网站运营中,如何让用户更便捷地找到他们需要的内容,是提升用户体验和转化率的关键。文章列表的筛选功能,就是实现这一目标的重要手段。安企CMS(AnQiCMS)提供了灵活且强大的机制,让我们可以根据自定义参数轻松地筛选并展示不同的文章列表结果,这对于打造个性化、高效率的内容平台非常有帮助。 ### 构建筛选功能的基石:自定义内容模型 要实现基于自定义参数的文章列表筛选

2025-11-08

如何在AnQiCMS模板中安全地将URL字符串解析为可点击的a标签?

在网站内容运营中,我们经常需要在文章、简介或自定义字段里展示一些网址、邮箱等信息。如果这些信息只是纯文本,用户就无法直接点击跳转,这不仅影响了用户体验,也可能降低内容的互动性和网站的SEO友好度。将这些URL字符串安全、智能地转换为可点击的`<a>`标签,是AnQiCMS模板中一个非常实用的功能。 AnQiCMS作为一个企业级内容管理系统,在设计之初就充分考虑了内容展示的灵活性与安全性

2025-11-08

如何在AnQiCMS中开启防采集干扰码和图片水印,以保护内容显示?

在数字化内容日益丰富的今天,保护网站上的原创内容显得尤为重要。安企CMS(AnQiCMS)深知内容创作者和企业用户的痛点,特别内置了防采集干扰码和图片水印功能,旨在帮助用户有效防止内容被恶意抓取和盗用,同时强化品牌标识。 ### 守护内容安全:启用防采集干扰码 原创内容的价值不言而喻,但网络上的信息采集工具却可能在未经许可的情况下大量复制您的文章,这不仅损害了原创者的权益,也可能分散网站流量

2025-11-08

AnQiCMS如何实现评论列表的分页显示和评论内容的点赞功能?

在网站运营中,用户评论和互动是提升内容活力的关键。安企CMS(AnQiCMS)提供了强大的内容管理能力,其中评论功能是用户与内容互动的重要桥梁。本文将详细探讨如何在安企CMS中实现评论列表的分页显示,以及为评论内容添加点赞功能,让您的网站互动体验更上一层楼。 ### 安企CMS 评论功能概览 安企CMS从早期版本便已内置了文章评论和评论管理功能,这为网站提供了原生的用户互动支持

2025-11-08