如何将`prevArchive`标签获取的`CreatedTime`或`UpdatedTime`格式化为易读的日期时间?

📅 👁️ 65

在网站运营中,内容发布时间或更新时间是向用户传递信息的重要组成部分。一个清晰、易读的日期时间格式,不仅能提升用户体验,还能增加内容的专业感和时效性。然而,许多内容管理系统在后台存储时间时,通常采用一串难以直观理解的时间戳。安企CMS(AnQiCMS)也不例外,在使用像prevArchive这样的标签获取文章的CreatedTimeUpdatedTime时,默认返回的也是这种原始的时间戳。

作为一位资深的网站运营专家,我深知将技术信息转化为用户友好的展示是多么重要。今天,我们就来深入探讨,如何在安企CMS中,将这些原始的时间戳数据,格式化成我们更习惯阅读的日期时间格式。

理解原始时间戳与用户需求

首先,我们得明白为什么会出现“一串数字”的情况。安企CMS在数据库中存储CreatedTimeUpdatedTime这类时间字段时,采用的是标准的时间戳格式,也就是自1970年1月1日00:00:00 UTC(Unix纪元)以来所经过的秒数。例如,您可能会在模板中看到类似 1678886400 这样的数字。虽然这对于系统内部处理非常高效和精确,但对于网站访问者而言,这串数字显然没有任何意义,也无法传达文章何时发布或更新的关键信息。

我们的目标,就是将prevArchivearchiveDetailarchiveList等标签获取到的item.CreatedTimeprev.UpdatedTime这样的时间戳,转换成诸如“2023年03月15日 10:30”或“昨天 10:30”这样的易读格式。

安企CMS的秘密武器:stampToDate 标签

安企CMS的模板引擎(基于Go语言的强大特性)为此提供了一个非常便利的内置标签:stampToDate。这个标签专门用于将时间戳格式化为我们需要的日期时间字符串。

它的基本使用方式是:{{stampToDate(时间戳变量, "格式化字符串")}}

这里的关键在于第二个参数——“格式化字符串”。与许多其他语言不同,Go语言(以及安企CMS的模板引擎)在定义日期时间格式时,并非使用Y-m-d H:i:s这样的占位符,而是使用一个特定的参照时间来作为格式模板。这个参照时间是:2006年01月02日 15时04分05秒

您没看错,就是这串数字和文字!您想把时间戳格式化成什么样子,就用这个参照时间来“模仿”它。

我们来看几个例子:

  • 如果您想显示“年-月-日”,比如 2023-03-15,那么格式化字符串就是 "2006-01-02"
  • 如果您想显示“年年年年/月月/日日”,比如 2023/03/15,那么格式化字符串就是 "2006/01/02"
  • 如果您想显示“年年年年年年年年时时时时分分”,比如 2023-03-15 10:30,那么格式化字符串就是 "2006-01-02 15:04"
  • 如果您想显示“年年年年年年年年时时时时分分秒秒”,比如 2023-03-15 10:30:00,那么格式化字符串就是 "2006-01-02 15:04:05"
  • 如果想要中文格式,比如 2023年03月15日,那么格式化字符串就是 "2006年01月02日"

通过这种方式,您几乎可以组合出任何您想要的日期时间显示格式。

实际应用:让时间在模板中“活”起来

现在,我们把这个stampToDate标签应用到具体的场景中。

场景一:在文章详情页格式化单篇文章的时间

假设您正在设计一个文章详情页,需要显示当前文章的发布时间和更新时间。在模板中,当前文章的详情通常通过archive变量直接获取,或者通过archiveDetail标签获取。

如果您想显示发布日期为“年年年年-月月-日日”:

<p>发布时间:{{stampToDate(archive.CreatedTime, "2006-01-02")}}</p>

如果您希望显示更新时间精确到分,并且带有中文描述:

<p>最近更新:{{stampToDate(archive.UpdatedTime, "2006年01月02日 15:04")}}</p>

这种直接使用archive.CreatedTimearchive.UpdatedTime的方式,简洁而高效。

场景二:在文章列表或上一篇/下一篇文章中格式化时间

当您使用archiveList循环遍历文章列表,或者使用prevArchivenextArchive标签获取上一篇/下一篇文章时,同样可以通过stampToDate标签对时间进行格式化。

例如,在上一篇/下一篇文章的展示中:

{% prevArchive prev %}
  {% if prev %}
    <p>上一篇:<a href="{{prev.Link}}">{{prev.Title}} ({{stampToDate(prev.CreatedTime, "2006-01-02")}})</a></p>
  {% else %}
    <p>没有上一篇文章了</p>
  {% endif %}
{% endprevArchive %}

{% nextArchive next %}
  {% if next %}
    <p>下一篇:<a href="{{next.Link}}">{{next.Title}} ({{stampToDate(next.CreatedTime, "2006-01-02")}})</a></p>
  {% else %}
    <p>没有下一篇文章了</p>
  {% endif %}
{% endnextArchive %}

在文章列表的循环中:

{% archiveList archives with type="list" limit="10" %}
  {% for item in archives %}
    <div>
      <h3><a href="{{item.Link}}">{{item.Title}}</a></h3>
      <p>发布于:{{stampToDate(item.CreatedTime, "2006年01月02日")}}</p>
      <p>{{item.Description}}</p>
    </div>
  {% endfor %}
{% endarchiveList %}

可以看到,无论是单个文章详情,还是列表中的每个项目,stampToDate标签都能灵活地将时间戳转换为我们想要的易读格式。

优化与**实践

在实际运营中,日期时间格式化不仅仅是技术实现,更关乎用户感知。

  • 保持一致性:在整个网站中,发布时间、更新时间的格式应尽量保持一致,避免用户混淆。
  • 考虑语境:对于新闻资讯类网站,发布时间可能需要精确到分钟;而对于长篇技术文章,只需显示到日即可。根据内容类型和用户习惯选择合适的格式。
  • 利用Go语言的灵活性:Go语言的参照时间格式虽然初看起来有些独特,但它非常灵活。您可以在tag-stampToDate.md文档中找到更多详细的格式化示例,探索更多可能性。

总结

通过安企CMS提供的stampToDate标签,我们可以轻松地将后台的时间戳数据转化为用户友好、易于理解的日期时间格式。无论您是显示单个文章的发布时间,还是在文章

相关文章

`prevArchive`标签可以获取上一篇文档的`Description`(摘要)字段吗?

好的,作为一名资深网站运营专家,我很乐意为您深入探讨安企CMS中`prevArchive`标签的使用,并解答关于获取文档摘要(Description)字段的问题。 --- ## 解锁安企CMS `prevArchive` 标签:轻松获取上一篇文档摘要 在日常的网站运营中,我们常常需要为用户提供流畅的阅读体验,引导他们发现更多相关内容。这其中

2025-11-07

`prevArchive`标签获取的“上一篇”文档是按照什么逻辑或排序规则确定的?

## 揭秘安企CMS `prevArchive` 标签:“上一篇”文档的智慧排序逻辑 作为一名资深的网站运营专家,我深知每一个CMS标签背后都蕴藏着提升用户体验和SEO效率的潜力。安企CMS(AnQiCMS)以其高效和灵活著称,其模板标签体系更是内容运营的强大工具。今天,我们就来深入探讨一个看似简单,实则蕴含巧妙逻辑的标签:`prevArchive`,它如何智能地确定我们所说的“上一篇”文档

2025-11-07

如何为`prevArchive`标签生成的链接添加自定义CSS样式或HTML属性?

作为一名资深的网站运营专家,我深知在内容管理系统中,细致入微的模板定制对于提升用户体验和网站整体格调的重要性。安企CMS(AnQiCMS)以其基于Go语言的高效架构和Django-like的模板引擎,为我们提供了极大的灵灵活性。今天,我们就来深入探讨一个常见的定制需求:如何为由`prevArchive`标签生成的“上一篇文章”链接添加自定义CSS样式或HTML属性。 --- ### 精雕细琢

2025-11-07

`prevArchive`标签在文章详情页之外(如列表页)是否仍能有效获取上一篇文档?

## 深入解析安企CMS的`prevArchive`标签:列表页的“上一篇”之谜 作为一名资深的网站运营专家,我深知在日常内容管理中,每一个标签、每一个功能背后都蕴含着提升用户体验和运营效率的潜力。安企CMS(AnQiCMS)以其简洁高效和对SEO友好的特性,已成为众多中小企业和自媒体运营者的得力助手。今天,我们就来深入探讨一个在文章详情页中屡见不鲜

2025-11-07

`prevArchive`标签是否支持获取上一篇文档的后台自定义字段内容?

作为一名资深的网站运营专家,同时对安企CMS(AnQiCMS)的模板标签与内容运营策略有着深刻的理解,我很高兴能为您详细解读`prevArchive`标签的功能,并探讨如何巧妙地获取上一篇文档的自定义字段内容。 --- ### 深入剖析安企CMS `prevArchive` 标签与自定义字段获取策略 在安企CMS的模板开发中,`prevArchive` 和 `nextArchive`

2025-11-07

在没有上一篇文档的情况下,如何避免`prevArchive`标签输出空值或导致模板报错?

作为一位资深的网站运营专家,我深知在内容管理系统中,模板的健壮性对于网站的稳定运行和用户体验至关重要。AnQiCMS以其高效和灵活的模板系统赢得了众多用户的青睐,但即便再优秀的系统,也需要在实际运用中掌握一些技巧,才能充分发挥其威力。今天,我们就来深入探讨一个在AnQiCMS模板开发中常见但又容易被忽视的问题:在没有上一篇文档的情况下,如何避免`prevArchive`标签输出空值或导致模板报错

2025-11-07

如何利用`prevArchive`标签有效提升网站的内链结构和用户导航体验?

## 解锁安企CMS `prevArchive` 标签:有效优化内链与用户导航体验的深度指南 在日益注重用户体验和搜索引擎优化的今天,一个网站的内部链接结构和导航流畅性显得尤为重要。作为一名资深的网站运营专家,我深知安企CMS(AnQiCMS)在内容管理和SEO方面的强大潜力。今天,我想和大家深入探讨如何巧妙利用安企CMS提供的`prevArchive`标签,不仅能显著提升网站的内链结构

2025-11-07

`prevArchive`标签能否获取上一篇文档的`Keywords`(关键词)字段?

作为一名资深的网站运营专家,我深知在内容管理系统中,每一个标签(Tag)功能的细致理解,都可能为网站的运营效率和SEO表现带来质的飞跃。今天,我们来深入探讨安企CMS(AnQiCMS)中一个非常实用的模板标签——`prevArchive`,并重点聚焦于它能否获取上一篇文档的`Keywords`(关键词)字段。 ### 探究`prevArchive`标签与文档关键词

2025-11-07