我如何显示一个日期,并在带有Jekyll的数字后面适当地附加th/st/nd?

我如何显示一个日期,并在带有Jekyll的数字后面适当地附加th/st/nd?,jekyll,liquid,Jekyll,Liquid,我到处找了找,但找不到这上面的任何东西。我知道我可以将日期格式化为“2013年1月12日”,但我如何添加“th”,使其成为“2013年1月12日”?它还需要确定是否应该使用“nd”或“st”。单用液体无法做到这一点,但可以编写液体标签,以所需格式显示日期。:) 从ActiveSupport创建您自己的库(或requirelibrary)。把它包起来,你就可以走了。我写了这个液体片段,它可以生成“有序”日期,而不需要插件 {% assign d = page.date | date: "%d" |

我到处找了找,但找不到这上面的任何东西。我知道我可以将日期格式化为“2013年1月12日”,但我如何添加“th”,使其成为“2013年1月12日”?它还需要确定是否应该使用“nd”或“st”。

单用液体无法做到这一点,但可以编写液体标签,以所需格式显示日期。:)


从ActiveSupport创建您自己的库(或
require
library)。把它包起来,你就可以走了。

我写了这个液体片段,它可以生成“有序”日期,而不需要插件

{% 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”等。。。字符串,它还从每个月的前九天删除前导零。日期如下所示:

July 4th, 2013
如果您对其他日期格式选项感兴趣,我也会把它放在一起。它包含一些有用选项的代码片段,如:“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。

另请参见:。