Ruby 使用未定义的方法“strftime'”;

Ruby 使用未定义的方法“strftime'”;,ruby,jekyll,Ruby,Jekyll,我在基于Jekyll的网站上一直使用重新格式化日期,例如: <p>{{ post.date | date_to_string }}</p> {{page.title}}可以正常工作,并且{{{page.date}}在没有液体过滤器的情况下使用时会呈现,输出,例如,2012-03-12 00:00:00+0000 为什么date\u to\u字符串过滤器在{{page.date}}提供的输入中失败。我得到以下错误: Liquid Exception: undefined

我在基于Jekyll的网站上一直使用重新格式化日期,例如:

<p>{{ post.date | date_to_string }}</p>
{{page.title}}
可以正常工作,并且
{{{page.date}}
在没有液体过滤器的情况下使用时会呈现,输出,例如,
2012-03-12 00:00:00+0000

为什么
date\u to\u字符串
过滤器在
{{page.date}}
提供的输入中失败。我得到以下错误:

Liquid Exception: undefined method `strftime' for nil:NilClass in base
构建失败了。谢谢你的帮助

在我的网站上我使用

{{ page.date | date: "%d %B %Y" }}
它从降价文件中获取日期。并且是这样呈现的:

2012年12月26日

请参阅以下链接以获取更多信息:

编辑:在评论部分回答您的问题:

如果要使用date_to_字符串,必须按如下方式调用:

{{ site.time | date_to_string }}
还有一个
{site.time | date_to_long_string}
,它会以完整的形式写出月份,例如11月而不是11月

来源


根据对您的链接的第二个答案,date_to_字符串是Jekyll添加到liquid的标准过滤器的一部分。它在GH页面上工作,这可能意味着它与Ruby/Jekyll/liquid版本的混合有关,只是想知道是否有人有关于它的指针?为什么需要将其转换为字符串?为什么不使用t生成它我在我的网站上的做法?本质上,它与日期“%d%b%Y”完全相同,我只是对这样一个事实感兴趣,即考虑到Jekyll和Ruby的一些组合,它似乎不起作用,这似乎很奇怪!好问题,很多人使用Tom的模板现在遇到了这个问题
{{ site.time | date_to_string }}