6

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

我参考了Shopify wiki,但我很震惊地看到那里没有任何格式。当然应该是这么简单的事情吗?:/

4

1 回答 1

13

Jekyll使用的 Liquid 模板引擎不提供开箱即用的排序能力(例如,将“1”变成“1st”,将“3”变成“3rd”)。但是,可以使用过滤器和标签来提供该功能。下面的代码片段生成月份中的日期,并附加了一个经过排序的字符串。它还会删除该月前 9 天的前导零。

{% 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

于 2013-09-21T23:39:29.870 回答