Jekyll日期格式化工作如何?

时间:2011-09-13 00:23:43

标签: liquid jekyll

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

我希望日期字段以12 September 2011格式显示。

我通过一些有创意的谷歌搜索发现了一些日期格式的操作,但似乎没有什么能让我成为月份名称。我所拥有的是{{ page.date| date: "%m-%d-%Y" }},它将我输出为09-12-2011,但并不是我想要的。

有没有办法让这个月成为杰基尔的名字?

或者,除此之外,是否有日期属性的文档?

6 个答案:

答案 0 :(得分:150)

解决方案

此输出过滤器:

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

生成格式为:

的日期
9 September 2013

请确保不要错过当天-前面的减号(%-d)。没有它,低于10的数字将具有前导零(例如09 September 2013)。

可以在Liquid "Output tags and filters" documentation page上找到有关各个日期格式化令牌的详细信息。

更多信息

我把large set of Jekyll date formatting examples放在一起。它提供了几种格式的示例,并应提供足够的详细信息以您想要的任何方式进行格式化。一些例子包括:

  • 2013年9月23日
  • 2013年9月23日
  • 九月2013年第23期
  • 2013年7月4日(即将名称更改为“Juli”而非“July”等其他语言)。

享受!

答案 1 :(得分:12)

Jekyll为液体添加过滤器扩展。见here。只需运行date_to_long_string过滤器即可显示所需的日期格式。

从链接:


日期到长字符串

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

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

答案 2 :(得分:3)

尝试'%B',意思是“完整的月份名称(``1月'')”

在文档中搜索strftime,这个函数通常用于将日期转换为字符串。

答案 3 :(得分:3)

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

答案 4 :(得分:2)

如果你想要一个自定义解决方案,你可以编写一个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>

答案 5 :(得分:2)

{{ page.date| date: "%d %B %Y" }}用于 2011年9月12日之类的日期,请参阅Jekyll Date Formatting

上的精彩快速格式指南