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

Posted

技术标签:

【中文标题】使用 Liquid 标记在 Jekyll 中获取今天的日期【英文标题】:Get today's date in Jekyll with Liquid markup 【发布时间】:2012-09-09 23:42:33 【问题描述】:

我认为这(应该)很简单,但我无法使用 Liquid 标记在 Jekyll 页面中显示今天的日期。根据the documentation,我应该可以这样做以获得这个日期的年份:

 'now' | date: "%Y" 

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

【问题讨论】:

我认为这个错误已经修复。使用 jekyll 3.2.1 和 ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14] 它正在工作 现在可以正常使用了。 【参考方案1】:

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

此类请求需要带有Date.getTime()Date.now()javascript 示例:

<script>document.write(Math.round(Date.now() / (365 * 24 * 60 * 60 * 1000) + 1970 - 1));</script>

【讨论】:

这是不必要的冗长。如果您打算使用 JS,则使用 Date 表示对象而不是 Date.now 整数。 x = newDate(); x.getFullYear(); // 2021【参考方案2】:

也许问题标题具有误导性,但我实际上想要的是今天的日期而不是年份。这对我有用:

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

今天制作:2019 年 1 月 4 日

【讨论】:

【参考方案3】:

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

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

要获取 2015 年的最后 2 位数字,这将只输出 "15"

 site.time | date: '%y' 

【讨论】:

这基本上重复了我回答后的评论。 @MarkThomas 但仍然有很好的解释。 @MarkThomas 您应该使用 Ruby 1.9.3 后的答案更新您的答案。【参考方案4】:

这对我也不起作用。看来您遇到了 Ruby 1.9.3 支持中的一个当前错误。有一个pull request 修复了这个错误,但它还没有被合并。列出了一种解决方法,也许它对您有用:

 site.time | date: '%y' 

【讨论】:

或 site.time |日期:2014 年的“%Y” 很确定这只是从您上次运行jekyll 命令开始的时间。从理论上讲,如果您不经常更新您的网站,这可能会变得陈旧。总而言之,和获取当前时间是不一样的。 @menehune23 无论如何,这一点没有实际意义。该修复程序已合并到 jekyll 中,因此 OP 的代码有效,不再需要此解决方法。 同意。只是想向那些不知道它现在就在里面的人指出它(并且没有自己尝试过) @menehune23 不确定您是否暗示此解决方法与 OP 尝试做的有任何不同。

以上是关于使用 Liquid 标记在 Jekyll 中获取今天的日期的主要内容,如果未能解决你的问题,请参考以下文章

带有 Jekyll 和 Liquid 的排序导航菜单

在 Jekyll/Liquid 和 pygments 的 html 问题中突出显示

在 jekyll 博客中支持标签的简单方法

Jekyll 教程——模板语言 Liquid

Jekyll 教程——模板语言 Liquid

Jekyll/Liquid 模板:如何按年份对博客文章进行分组?