2 分钟阅读
将以下英文翻译为中文:
https://gohugo.io/functions/format/
根据 Go 的布局字符串格式化内置的 Hugo 日期 —— .Date
, .PublishDate
和 .Lastmod
。
.Format FORMAT
.Format
将格式化在前置元数据中定义的日期值,并可用作以下页面变量的属性:
.PublishDate
.Date
.Lastmod
假设内容文件前置元数据中有一个键值对 date: 2017-03-03
,可以通过 .Format
,后跟期望输出的布局字符串来将日期处理后再构建:
|
|
要格式化您前置元数据中定义的任何日期字符串表示形式,请参见 dateFormat
函数,它仍将利用下面解释的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
以下示例显示布局字符串,后跟渲染的输出。
这些示例在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函数将月份的日期渲染为序数:
|
|
这将输出:
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