101

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

我希望日期字段以12 September 2011.

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

有什么方法可以在 Jekyll 中将月份命名为名称?

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

4

6 回答 6

171

解决方案

这个输出过滤器:

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

生成格式如下的日期:

9 September 2013

一定不要错过当天-前面的减号( ) 。%-d没有它,十以下的数字将有前导零(例如09 September 2013)。

有关各个日期格式标记的详细信息,请参见Liquid“输出标签和过滤器”文档页面

更多信息

我整理了一大套 Jekyll 日期格式示例。它提供了几种格式的示例,并且应该提供足够的细节来以您想要的任何方式进行格式化。一些例子包括:

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

享受!

于 2011-10-27T00:41:56.393 回答
16

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

从链接:


日期到长字符串

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

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

于 2012-03-02T15:15:54.387 回答
4

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.

于 2018-04-24T13:26:15.257 回答
3

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

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

于 2011-09-13T00:38:22.260 回答
3

万一您需要自定义解决方案,您可以编写一个 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>
于 2015-09-01T12:37:18.220 回答
2

用于2011 年 9 月 12 日{{ page.date| date: "%d %B %Y" }}等日期,请参阅Jekyll Date Formatting上的快速格式化指南

于 2017-02-28T08:10:24.203 回答