Jekylldate格式化工作如何?

我正在使用Jekyll来生成一个简单的网站。

我希望date字段以12 September 2011的格式显示。

我发现,通过一些有创意的search引擎,一些date格式的操作,但似乎没有让我的月份名称。 我有什么是{{ page.date| date: "%m-%d-%Y" }} {{ page.date| date: "%m-%d-%Y" }} ,这使得我输出09-12-2011 ,但不是我所期待的。

Jekyll有没有办法让这个月成为一个名字?

或者,除此之外,是否有任何文件的date属性?

要生成格式如下所示的date:

 9 September 2013 

使用这个输出filter:

 {{ page.date | date: "%-d %B %Y" }} 

在date位置( %-d )使用破折号( - )可防止数字在10以下的前导零。 有关各个date格式化标记的详细信息,请参见Liquid“输出标签和filter”文档页面 。


使用标签和filter,date可以以任何你喜欢的方式进行格式化。 例如:

  • 2013年9月23日
  • 2013年9月23日
  • 2013年9月23日
  • 2013年7月4日(即将名称改为其他语言,如“Juli”而不是“July”)。

为了说明如何生成它们,我把这个大型的Jekylldate格式化例子放在一起。

Jekyll增加了液体的filter扩展。 看到这里 。 您只需运行date_to_long_stringfilter即可显示所需的date格式。

从链接:


date到长string

以长格式格式化date,例如“2011年1月27日”。

{{ site.time | date_to_long_string }} {{ site.time | date_to_long_string }} => 17 November 2008

尝试'%B'这意味着“完整的月份名称(”一月“)”

search文档strftime,通常用于将date转换为string的函数。

使用{{ page.date| date: "%d %B %Y" }} {{ page.date| date: "%d %B %Y" }}对于像2011年9月12日那样的date,请参考Jekylldate格式化的快速格式化指南

以防万一你想要一个自定义的解决scheme,你可以编写一个Jekyll插件来格式化一个date,就像这样(这个例子是用于意大利date的):

 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>