我环顾四周,但找不到任何东西。我知道我可以将日期格式化为“2013 年 1 月 12 日”,但我将如何添加“th”,所以它会是“2013 年 1 月 12 日”?它还需要确定是否应该使用“nd”或“st”。
问问题
429 次
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 回答