.Format

将以下英文翻译为中文:

.Format

https://gohugo.io/functions/format/

​ 根据 Go 的布局字符串格式化内置的 Hugo 日期 —— .Date.PublishDate.Lastmod

语法

.Format FORMAT

.Format 将格式化在前置元数据中定义的日期值,并可用作以下页面变量的属性:

  • .PublishDate
  • .Date
  • .Lastmod

​ 假设内容文件前置元数据中有一个键值对 date: 2017-03-03 ,可以通过 .Format ,后跟期望输出的布局字符串来将日期处理后再构建:

1
{{ .PublishDate.Format "January 2, 2006" }} => March 3, 2017

​ 要格式化您前置元数据中定义的任何日期字符串表示形式,请参见 dateFormat 函数,它仍将利用下面解释的Go 布局字符串,但使用略有不同的语法。

Go 的布局字符串

​ 模板通过布局字符串格式化您的日期,该字符串指向特定的参考时间:

Mon Jan 2 15:04:05 MST 2006

​ 虽然这可能看起来是任意的,但 MST 的数字值为 07 ,因此使布局字符串成为数字序列。

​ 这里有一个可视化解释直接取自 Go 文档

 Jan 2 15:04:05 2006 MST
=> 1 2  3  4  5    6  -7

Hugo 日期和时间模板参考

​ 以下示例显示布局字符串,后跟渲染的输出。

​ 这些示例在CST中进行了渲染和测试,并且都指向内容文件前置元数据中的同一字段:

date: 2017-03-03T14:15:59-06:00
  • .Date (即通过页面变量进行调用)

    返回2017-03-03 14:15:59 -0600 CST

  • "Monday, January 2, 2006"

    返回Friday, March 3, 2017

  • "Mon Jan 2 2006"

    返回Fri Mar 3 2017

  • "January 2006"

    返回March 2017

  • "2006-01-02"

    返回2017-03-03

  • "Monday"

    返回Friday

  • "02 Jan 06 15:04 MST" (RFC822)

    返回03 Mar 17 14:15 CST

  • "02 Jan 06 15:04 -0700" (RFC822Z)

    返回03 Mar 17 14:15 -0600

  • "Mon, 02 Jan 2006 15:04:05 MST" (RFC1123)

    返回Fri, 03 Mar 2017 14:15:59 CST

  • "Mon, 02 Jan 2006 15:04:05 -0700" (RFC1123Z)

    返回Fri, 03 Mar 2017 14:15:59 -0600

​ 有关更多示例,请参见go文档中的time包

基数和序数缩写

​ 目前不支持拼写出的基数(例如"one",“two"和"three”)。

​ 使用 humanize函数将月份的日期渲染为序数:

1
{{ humanize .Date.Day }} of {{ .Date.Format "January 2006" }}

​ 这将输出:

5th of March 2017

使用 .Local.UTC

​ 与 dateFormat 函数一起使用,您还可以将日期转换为 UTC 或本地时区:

  • {{ dateFormat "02 Jan 06 15:04 MST" .Date.UTC }}

    返回03 Mar 17 20:15 UTC

  • {{ dateFormat "02 Jan 06 15:04 MST" .Date.Local }}

    返回03 Mar 17 14:15 CST

另请参阅