安企CMS:在Json-LD中巧用stampToDate过滤器,让时间戳焕发可读生机

作为一名资深的网站运营专家,我深知在当今数字营销时代,网站内容不仅要吸引用户,更要“取悦”搜索引擎。安企CMS(AnQiCMS)作为一款基于Go语言开发的企业级内容管理系统,凭借其高效、灵活和SEO友好的特性,已成为众多中小企业和内容运营团队的得力助手。在众多提升SEO表现的策略中,结构化数据(Json-LD)扮演着至关重要的角色,它能帮助搜索引擎更准确地理解网页内容,进而提升搜索排名和展示效果。

在配置Json-LD结构化数据时,我们经常会遇到需要处理时间信息的情况,例如文章的发布日期或更新日期。这些时间通常以时间戳(Timestamp)的形式存储在数据库中,而Json-LD标准要求日期以人类可读且机器友好的特定格式呈现。这时,安企CMS内置的stampToDate过滤器就派上了大用场,它能轻松地将原始时间戳转换为符合Json-LD规范的日期格式。

认识Json-LD与安企CMS的整合之道

Json-LD(JSON for Linking Data)是一种轻量级的链接数据格式,它允许网站管理员将结构化数据直接嵌入到HTML页面中,让搜索引擎能够理解页面上各个实体(如文章、产品、活动等)之间的关系和属性。安企CMS从设计之初就充分考虑了SEO优化,因此它天然支持结构化数据。系统在后台会自动为您的内容生成基础的Json-LD,省去了手动编写的繁琐。

然而,对于一些个性化的需求,例如我们希望在Json-LD中展示特定的作者信息、自定义的图片列表,或者像今天我们要讨论的,精确控制日期时间的格式,安企CMS提供了极高的灵活性。您可以通过在模板中使用{% jsonLd %}...{% endjsonLd %}标签,来注入或覆盖默认生成的Json-LD内容。在这个自定义块中,您可以像编写普通JSON一样,定义您需要的结构化数据字段,而安企CMS会智能地将这些自定义内容与系统默认生成的Json-LD进行合并。

时间戳与可读日期:为什么格式化如此重要?

在安企CMS中,无论是文章的CreatedTime(创建时间)还是UpdatedTime(更新时间),这些数据在后台都以10位的时间戳形式存储。时间戳本质上是一个数字序列,它代表了从某个固定时间点(通常是Unix纪元,即1970年1月1日00:00:00 UTC)到某个特定时间的秒数。这种格式对于数据库和程序处理效率很高,但对于人类阅读和搜索引擎的解析来说却并不直观。

在Json-LD等结构化数据中,日期时间信息需要遵循ISO 8601标准,例如YYYY-MM-DDTHH:MM:SSZ。这种统一的格式确保了不同系统和地区对日期时间的理解一致性,避免了歧义。对搜索引擎而言,精确且标准化的日期信息有助于它们判断内容的“新鲜度”、相关性以及在时间轴上的位置,这对于新闻、博客、事件等时效性强的内容尤为关键。因此,将时间戳转换为可读的标准化日期,是提升内容价值和SEO表现不可或缺的一步。

stampToDate过滤器:安企CMS的日期格式化利器

为了解决时间戳与可读日期之间的转换问题,安企CMS在模板引擎中内置了一个非常实用的stampToDate过滤器。它的使用方法简洁明了,能够将10位的时间戳直接格式化为您所需的任何日期时间格式。

stampToDate过滤器的基本语法是:{{stampToDate(时间戳, "格式")}}

这里需要特别注意的是“格式”部分。安企CMS的模板引擎基于Go语言,其日期格式化方式也沿用了Go语言的独特风格,即通过一个特定的参考日期——2006-01-02 15:04:05.999999999 -0700 MST来定义输出格式。您不需要记住这个冗长的参考日期,只需要记住其中的各个组成部分代表的含义即可:

  • 2006 代表年份
  • 01 代表月份
  • 02 代表日期
  • 15 代表24小时制的小时
  • 04 代表分钟
  • 05 代表秒
  • MSTZ07:00 代表时区信息(Json-LD中常使用Z07:00表示UTC时间偏移)

通过组合这些数字,您可以灵活地创建各种日期格式。例如:

  • "2006-01-02" 会输出年-月-日,如2023-10-26
  • "2006年01月02日" 会输出2023年10月26日
  • "2006/01/02 15:04" 会输出年/月/日 时:分,如2023/10/26 10:30
  • 而对于Json-LD,我们常常需要ISO 8601格式,可以这样使用:"2006-01-02T15:04:05Z07:00",它将输出类似2023-10-26T10:30:00+08:00这样的标准化日期时间。

与此过滤器容易混淆的是安企CMS的date过滤器,但请注意,date过滤器期望的输入是Go语言的time.Time类型对象,而不是原始时间戳。因此,在处理由数据库直接返回的10位时间戳时,stampToDate是更直接、更便捷的选择。

在Json-LD中集成stampToDate:实战范例

现在,我们来看一个具体的例子,如何在文章(Article)类型的Json-LD中,利用`stampTo