2

我环顾四周,但找不到任何东西。我知道我可以将日期格式化为“2013 年 1 月 12 日”,但我将如何添加“th”,所以它会是“2013 年 1 月 12 日”?它还需要确定是否应该使用“nd”或“st”。

4

2 回答 2

1

你不能单独使用 Liquid,但你可以编写一个 Liquid 标签来以所需的格式显示日期。:)

您应该查看 ActiveSupport 中的 #ordinalize 方法来创建您自己的(或require库)。把它包裹在一个液体标签上,你应该很高兴。

于 2013-07-23T13:53:22.060 回答
1

我编写了这个 Liquid 片段,它无需插件即可生成“有序化”日期。

{% assign d = page.date | date: "%d" | plus:'0' %}
{{ page.date | date: "%B" }} 
{% case d %}
  {% when 1 or 21 or 31 %}{{ d }}st
  {% when 2 or 22 %}{{ d }}nd
  {% when 3 or 23 %}{{ d }}rd
  {% else %}{{ d }}th
  {% endcase %}, 
{{ page.date | date: "%Y" }}

代码不仅添加了“st”、“nd”等字符串,还删除了每个月前 9 天的前导零。日期生成如下所示:

July 4th, 2013

如果您对其他日期格式选项感兴趣,我还整理了这套完整的 Jekyll Liquid 日期格式示例。它包含几个有用选项的片段,例如:“2013-09-23”、“2013 年 9 月 23 日”和“2013 年 9 月 23 日”。


注意:该代码分为多行,以使其在此答案中可读。您可能希望将其移动到单行以避免生产中的空白问题。我不知道我使用的任何版本是如何特定的,但代码在运行 OS X 10.8.5 的 Mac 上工作:Ruby 2.0.0p247 - Jekyll 1.2.1 - Liquid 2.5.2。

于 2013-09-22T03:35:37.950 回答