我正在使用 Jekyll 生成一个简单的站点。
我希望日期字段以12 September 2011
.
通过一些创造性的谷歌搜索,我发现了一些日期格式的操作,但似乎没有什么能让我得到月份的名称。我所拥有的是{{ page.date| date: "%m-%d-%Y" }}
,它使我的输出为09-12-2011
,但并不是我想要的。
有什么方法可以在 Jekyll 中将月份命名为名称?
或者,除此之外,是否有任何关于 date 属性的文档?
这个输出过滤器:
{{ page.date | date: "%-d %B %Y" }}
生成格式如下的日期:
9 September 2013
一定不要错过当天-
前面的减号( ) 。%-d
没有它,十以下的数字将有前导零(例如09 September 2013
)。
有关各个日期格式标记的详细信息,请参见Liquid“输出标签和过滤器”文档页面。
我整理了一大套 Jekyll 日期格式示例。它提供了几种格式的示例,并且应该提供足够的细节来以您想要的任何方式进行格式化。一些例子包括:
享受!
Jekyll 为液体添加了过滤器扩展。见这里。您只需运行date_to_long_string
过滤器即可显示所需的日期格式。
从链接:
以长格式格式化日期,例如“2011 年 1 月 27 日”。
{{ site.time | date_to_long_string }}
=>17 November 2008
Jekyll 3.8 支持开箱即用的序数日期。要输出月份,请使用其中之一。
{{ page.date | date_to_long_string: "ordinal", "US" }}
将输出April 24th, 2018
.
{{ page.date | date_to_string: "ordinal", "US" }}
将输出Apr 24th, 2018
.
{{ page.date | date_to_long_string: "ordinal" }}
将输出24th April 2018
.
{{ page.date | date_to_string: "ordinal" }}
将输出24th Apr 2018
.
试试 '%B',意思是“完整的月份名称(``January'')”
在文档中搜索 strftime,该函数通常用于将日期转换为字符串。
万一您需要自定义解决方案,您可以编写一个 Jekyll 插件来根据需要格式化日期,如下所示(此示例适用于意大利日期):
module Jekyll
module ItalianDates
MONTHS = {"01" => "gennaio", "02" => "febbraio", "03" => "marzo",
"04" => "aprile", "05" => "maggio", "06" => "giugno",
"07" => "luglio", "08" => "agosto", "09" => "settembre",
"10" => "ottobre", "11" => "novembre", "12" => "dicembre"}
# http://man7.org/linux/man-pages/man3/strftime.3.html
def italianDate(date)
day = time(date).strftime("%e") # leading zero is replaced by a space
month = time(date).strftime("%m")
year = time(date).strftime("%Y")
day+' '+MONTHS[month]+' '+year
end
def html5date(date)
day = time(date).strftime("%d")
month = time(date).strftime("%m")
year = time(date).strftime("%Y")
year+'-'+month+'-'+day
end
end
end
Liquid::Template.register_filter(Jekyll::ItalianDates)
只需将其保存到一个文件_plugins/italian_dates.rb
中,然后在模板中根据需要使用它:
<time datetime="{{page.date | html5date}}">{{page.date | italianDate}}</time>
用于2011 年 9 月 12 日{{ page.date| date: "%d %B %Y" }}
等日期,请参阅Jekyll Date Formatting上的快速格式化指南