如何将时间戳格式化为可读的

📅 👁️ 67

让时间说话:安企CMS中如何将时间戳格式化为可读日期

在运营网站时,内容的时效性往往是用户非常关注的一点。无论是文章的发布时间、产品信息的更新时间,还是用户评论的具体时刻,清晰直观的日期和时间都能大大提升用户体验,甚至对搜索引擎优化(SEO)也有积极影响。然而,在内容管理系统的后台,我们有时会看到时间以一串长长的数字形式呈现,比如 1609470335。这就是所谓的时间戳,它是机器语言,对于我们普通用户来说,理解起来并不直观。

安企CMS作为一个高效、易用的内容管理系统,充分考虑到了用户的实际需求。它为我们提供了一个非常便捷且强大的工具来解决这个问题,那就是 stampToDate 标签。通过这个标签,我们可以轻松地将那些冰冷的时间戳转化为人人都能理解的、具有“人情味”的日期和时间格式。

认识 stampToDate 标签

stampToDate 标签是安企CMS模板引擎中专门用于时间戳格式化的内置函数。它的基本用法非常直观:

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

这里的 时间戳 通常是一个10位的Unix时间戳(表示从1970年1月1日00:00:00 UTC到现在的秒数),而 格式 则是您希望日期和时间显示出来的具体样式。

关键在于如何定义这个“格式”。安企CMS的模板引擎底层基于Go语言,因此它沿用了Go语言独特的时间格式化规则。这个规则不是用常见的 YYYY-MM-DD 这样的占位符,而是使用一个特定的参照时间2006-01-02 15:04:05。您需要将您想要的日期和时间格式,映射到这个参照时间上。听起来有点抽象?别担心,我们通过一些例子来理解。

常用格式化模式一览

掌握 stampToDate 的关键就是理解Go语言的这个参照时间。下面的表格将展示一些常见的日期时间显示需求,以及它们对应的格式字符串:

显示需求 格式字符串(Go语言参照时间) 示例输出(假设时间戳为 1609470335 对应的 2021年1月1日 11:05:35)
日期
年-月-日(如 2021-01-01) 2006-01-02 2021-01-01
年月日(如 2021年01月01日) 2006年01月02日 2021年01月01日
月/日/年(如 01/01/2021) 01/02/2006 01/01/2021
时间
时:分:秒(如 11:05:35) 15:04:05 11:05:35
时:分(如 11:05) 15:04 11:05
完整日期时间
年-月-日 时:分:秒 2006-01-02 15:04:05 2021-01-01 11:05:35
年月日 时分秒 2006年01月02日 15时04分05秒 2021年01月01日 11时05分35秒
星期几,月日年 时:分:秒 Mon, 02 Jan 2006 15:04:05 Fri, 01 Jan 2021 11:05:35

通过这个参照表,您可以灵活地组合出几乎任何您想要的日期和时间格式。

在您的安企CMS模板中应用

现在,让我们看看如何在实际的安企CMS模板文件中使用 stampToDate 标签。在安企CMS中,无论是文章详情 (archiveDetail)、文章列表 (archiveList) 还是评论列表 (commentList),很多时间字段(如 CreatedTimeUpdatedTime)都是以10位时间戳的形式提供的。

示例一:在文章详情页显示发布日期

假设您希望在文章详情页 ({模型table}/detail.html 或自定义文章模板) 显示文章的发布日期。文章对象的 CreatedTime 字段存储着发布时间戳。

{# 默认获取当前页面的文档对象 archive #}
<div>
    发布日期:{{stampToDate(archive.CreatedTime, "2006年01月02日")}}
</div>
<div>
    更新时间:{{stampToDate(archive.UpdatedTime, "2006-01-02 15:04")}}
</div>

示例二:在文章列表页显示每篇文章的发布时间

当您在一个文章列表页 ({模型table}/list.html 或自定义列表模板) 中循环显示多篇文章时,可以使用 for 循环中的 item.CreatedTime

{% archiveList archives with type="page" limit="10" %}
    {% for item in archives %}
    <li>
        <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
        <p>
            发布于:<span>{{stampToDate(item.CreatedTime, "2006-01-02 15:04")}}</span>
            浏览量:<span>{{item.Views}}</span>
        </p>
        <p>{{item.Description}}</p>
    </li>
    {% endfor %}
{% endarchiveList %}

示例三:在评论或留言中显示时间

用户提交评论或留言时,系统也会记录下时间戳。在评论列表 (comment/list.html) 中,您可以这样格式化时间:

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

小贴士

  • 灵活尝试: Go语言的参照时间格式化非常灵活,您可以尝试不同的组合来达到您想要的显示效果。比如只显示年份 2006,或者只显示月份 01
  • 字段名称: 请注意,CreatedTimeUpdatedTime 这些字段本身就存储了时间戳值,可以直接传递给 stampToDate 函数。
  • 后台定时发布: 安企CMS支持内容的定时发布功能。如果您将发布时间设置为未来某个时间,那么在到达指定时间前,前端页面通常不会显示该内容。一旦到达, CreatedTime 就会被正确解析并显示。

通过 stampToDate 标签,您可以轻松地将网站上的时间信息呈现得更加清晰、友好。这不仅能提升用户阅读体验,也让您的网站内容

相关文章

如何在AnQiCMS模板中安全地输出用户生成的内容,防止XSS攻击影响页面显示?

网站内容运营中,用户生成的内容(User-Generated Content, UGC)无疑是提升网站活力和互动性的宝贵资源。无论是评论、留言、论坛帖子,还是经过富文本编辑器编辑的文章内容,这些都极大丰富了网站的信息生态。然而,伴随UGC而来的,是潜在的安全风险,其中最常见且危害较大的便是跨站脚本(XSS)攻击。如果不加以防范,恶意的脚本代码可能会在用户浏览器中执行,窃取用户数据、篡改页面

2025-11-08

AnQiCMS的模板继承功能如何实现母版页和子页面的内容区块显示覆盖和定制?

## 灵活定制网站:AnQiCMS 的模板继承如何让母版页和子页面各显神通? 在网站内容管理中,保持页面风格一致性同时又能灵活修改局部内容,是许多运营者追求的目标。AnQiCMS 采用类似 Django 模板引擎的语法,为我们提供了一个优雅的解决方案,那就是强大的模板继承功能。通过这个功能,我们可以巧妙地设计母版页和子页面,让网站结构既统一又高度可定制。 想象一下

2025-11-08

如何在AnQiCMS模板中使用`macro`宏函数,定义可复用的内容显示片段以提高效率?

在安企CMS中,高效地管理网站内容和前端展示是日常运营的关键。当我们面对一些重复出现的页面元素,比如文章列表项、产品卡片或者带有特定样式的按钮时,如果每次都重新编写代码,不仅耗时耗力,还容易出错,并且未来的修改和维护也会变得异常复杂。幸运的是,安企CMS提供了强大的模板引擎,其中`macro`宏函数就是解决这一痛点的利器,它能帮助我们定义可复用的内容显示片段,从而大幅提高开发效率和模板的可维护性

2025-11-08

AnQiCMS模板如何使用`include`标签,高效复用并显示公共的页头、页脚等模块?

在构建一个网站时,我们常常会遇到这样的场景:网站的页头(Header)、页脚(Footer)、侧边栏(Sidebar)以及导航菜单等模块,几乎在每个页面都会出现。这些模块不仅内容相似,而且其结构和样式也需要保持高度一致。如果为每个页面都重复编写这些代码,不仅效率低下,后续一旦需要修改,就得逐一调整所有页面,这无疑是一场维护的噩梦。 幸运的是,安企CMS(AnQiCMS)深知模板复用的重要性

2025-11-08

如何在文章列表页中根据特定条件(如推荐属性)筛选并展示内容?

在我们的网站内容运营中,文章列表页往往承担着重要的展示职责。我们不希望仅仅按照发布时间机械地排列内容,而是希望能根据一些特定的条件,比如内容的重要性、热门程度或者是否被推荐,来灵活地筛选和展示文章。安企CMS(AnQiCMS)在设计之初就充分考虑了这些需求,为我们提供了简单而强大的内容筛选机制。 今天,我们就来聊聊如何在安企CMS的文章列表页中,根据特定条件(比如“推荐属性”)来筛选并展示内容

2025-11-08

安企CMS支持哪些方式来调整网站的整体内容展示模式(自适应、代码适配、PC+手机独立站)?

安企CMS:灵活定制网站内容展示模式的三种选择 在搭建和运营网站时,如何让网站内容在不同设备上呈现**效果,是每个站长都需要考虑的重要问题。安企CMS深知这一点,因此提供了多种灵活的内容展示模式,让您可以根据实际需求,选择最适合自己的方式来打造网站。无论您是追求简洁高效,还是需要极致的定制化体验,安企CMS都能提供有力的支持。 接下来,我们将深入探讨安企CMS支持的三种网站内容展示模式

2025-11-08

如何利用安企CMS的灵活内容模型来定义不同类型内容的展示字段?

在数字内容日益丰富且多样化的今天,网站内容管理系统(CMS)的灵活性至关重要。安企CMS(AnQiCMS)深知这一点,其核心优势之一便是提供了强大的“灵活内容模型”功能,让用户能够根据不同的业务需求,为各类内容定制专属的展示字段。这不仅极大地提升了网站的适应性,也让内容运营变得更加高效和个性化。 想象一下,您的网站可能既发布普通的文章,又展示产品信息,甚至有活动报名、案例分享等多种类型的内容

2025-11-08

在多语言网站中,安企CMS如何确保不同语言内容的正确切换和显示?

在全球化日益深入的今天,网站内容能够触达不同语言的用户群体,已成为企业拓展市场、提升品牌影响力的关键。对于运营多语言网站的用户来说,最关心的问题之一莫过于:如何确保不同语言内容的正确切换和显示?安企CMS(AnQiCMS)在这方面提供了一套清晰且高效的解决方案,让我们一起来看看它具体是如何实现的。 ### 内容管理的核心:多站点与灵活内容模型 首先,安企CMS为多语言网站打下了坚实的基础

2025-11-08