v1.9.1
把时间戳转换为字符串。LiquidJS 尝试跟 Shopify/Liquid 保持一致,它用的是 Ruby 核心的 Time#strftime(string)。此外 LiquidJS 会先通过 new Date() 尝试把输入转换为 Date 对象。
但 LiquidJS 支持的格式与 Ruby 的 flag 有些不同:
%Z
(自 v10.11.1 起支持)只有在传入了时区时才起作用(可以通过LiquidOption
传入,也可以在创建日期时单独传入,见下文)。如果传入的时区是个数字,那么它的表现将会与%z
相同。如果没有传入时区,将会返回 运行时默认时区。- LiquidJS 提供额外的
%q
用来处理序数:{{ '2023/02/02' | date: '%d%q of %b'}}
=>02nd of Feb
- 日期字面量会通过 [new Date()][jsDate] 转化为
Date
对象,这意味着字面量默认使用运行时默认时区。 - 格式字参数是可选的:
- 如果不传,默认为
%A, %B %-e, %Y at %-l:%M %P %z
。 - 上述默认值可以通过
dateFormat
参数覆盖。
- 日期字面量会通过 [new Date()][jsDate] 转化为
输入
{{ article.published_at | date: "%a, %b %d, %y" }}
输出
Fri, Jul 17, 15
时区日期在输出时会转换为当地时区,设置
timezoneOffset
LiquidJS 参数可以指定一个不同的时区。或者设置preserveTimezones
为true
来保持字面量时间戳的时区,数据中的日期对象不受此参数的影响。
你也可以在使用 date
时再设置时区:
输入
{{ "1990-12-31T23:00:00Z" | date: "%Y-%m-%dT%H:%M:%S", 360}} // 等价于设置 `options.timezoneOffset` to `360`.
{{ "1990-12-31T23:00:00Z" | date: "%Y-%m-%dT%H:%M:%S", "Asia/Colombo" }}
输出
1990-12-31T17:00:00
1991-01-01T04:30:00
输入
{{ article.published_at | date: "%Y" }}
输出
2015
输入也可以是符合 JavaScript Date
格式的字符串::
输入
{{ "March 14, 2016" | date: "%b %d, %y" }}
输出
Mar 14, 16
时间戳字符串LiquidJS 使用 JavaScript [Date][newDate] 来解析输入字符串,意味着支持 IETF-compliant RFC 2822 时间戳 和 特定版本的 ISO8601。
可以用特殊值 "now"
(或"today"
)来获取当前时间:
输入
This page was last updated at {{ "now" | date: "%Y-%m-%d %H:%M" }}.
输出
This page was last updated at 2020-03-25 15:57.
当前时间注意得到的当前时间是模板渲染时的时间,如果你在用静态站点生成器或者模板有被缓存这一时间可能与用户看到的时间不同。