在Liquid / Jekyll中排序日期格式(例如“1st”,“3rd”和“4th”)

时间:2013-09-19 11:04:10

标签: jekyll liquid

是否可以在Liquid或Jekyll中将日期后缀添加到日期格式?例如:1月23日或5月18日。

我已经提到了Shopify wiki,但我很震惊地看到它没有格式化。当然应该是简单的事情吗? :/

1 个答案:

答案 0 :(得分:10)

Jekyll使用的液体模板引擎无法开箱即用(例如,将“1”变为“1”,将“3”变为“3”)开箱即用。但是,可以使用过滤器和标记来提供该功能。下面的代码段会生成一个月中的日期编号,并附加一个ordanilized字符串。它还删除了本月前九天的前导零。

{% assign d = page.date | date: "%-d" %}
{% 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 %}

有关月,日和年的完整日期,请使用:

{% assign d = page.date | date: "%-d" %}
{{ 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" }}

产生如下输出:

September 21st, 2013

注意:代码被拆分为多行,以便于阅读。它将在HTML中呈现良好,但在源代码中将有额外的空格。如果这困扰你,只需将所有内容移动到一行。

如果您对其他日期格式选项感兴趣,请创建此引用:Jekyll (and GitHub Pages) Liquid Date Formatting Examples