使用Liquid标记获取Jekyll的今天日期


67

我认为这(应该)很容易,但是我无法使用Liquid标记将今天的日期显示在Jekyll页面中。根据文档,我应该能够执行此操作以获取该日期的年份:

{{ 'now' | date: "%Y" }}

但是呈现的只是字符串now,而不是任何格式化的日期。我究竟做错了什么?


1
我认为此错误已修复。使用jekyll 3.2.1,ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]它正在工作
pedrorijo91

2
现在工作正常。
Damjan Pavlica'2

Answers:


130

这对我也不起作用。看来您在Ruby 1.9.3支持中遇到了当前错误。有一个拉取请求可以修复该错误,但尚未合并。列出了一种解决方法,也许它对您有用:

{{ site.time | date: '%y' }}

36
或{{site.time | 日期:2014
乔治Tsiokos

2
可以肯定的是,这只能从上次运行jekyll命令中获得时间。从理论上讲,如果您不对网站进行太多更新,则可能会过时。总而言之,它与获取当前时间不同。
Andrew M.

@ menehune23无论如何,这一点是没有意义的。该修复程序已合并到jekyll中,因此OP的代码有效,并且不再需要这种解决方法。
马克·托马斯

同意 只是想为那些不知道它在那里的人(并且自己还没有尝试过)指出这些信息
Andrew M.

@ menehune23不知道您是否暗示此替代方法与OP尝试执行的操作有所不同。
马克·托马斯

8

要获得全年,例如“2015”,从site.time,您可以使用:

{{ site.time | date: '%Y' }}
# OR
20{{ site.time | date: '%y' }}

要仅获得2015年的最后两位数字,将仅输出“ 15”

{{ site.time | date: '%y' }}

3
这基本上是在我回答之后重复评论。
马克·托马斯

@MarkThomas但仍然有很好的解释。
5ervant '16

1
@MarkThomas您应该使用Ruby 1.9.3之后的答案来更新您的答案。
Joshua Pinter

2

也许题目的标题令人误解,但我实际上想要的是今天的日期而不是年份。这对我有用:

{{ site.time | date: '%B %d, %Y' }}

今天生产:2019年1月4日


0

{{ site.time }} 代表网站更新的时间,它是固定日期,而不是动态日期。

此类请求需要使用JavascriptDate.getTime()Date.now()示例:

<script>document.write(Math.round(Date.now() / (365 * 24 * 60 * 60 * 1000) + 1970 - 1));</script>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.