我正在使用 Eleventy 并使用 Posts。我已经使用格式设置了元数据中的日期
date: 2021-09-10
.
我可以使用
显示完整日期{{ page.date | readableDate }}
但是我想在帖子内容中仅显示年份(YYYY)。我正在使用 Nunjucks。
我该怎么做?
我已经尝试过了
{{ page.date.getFullYear }}
这会出现以下错误:
function () { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return obj[val].apply(obj, args); }
任何帮助将不胜感激 - 谢谢!
向您的 .eleventy.js 文件添加过滤器
eleventyConfig.addFilter("justYear", (dateString) => {
dateObj = new Date(dateString);
return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat('yyyy');
});
然后在你的 .njk 文件中
{{ page.date | justYear }}
实际上,您的方法正在朝着正确的方向发展,并且您不需要为此注册过滤器。
然而
page.date.getFullYear
是一个函数,你所做的只是打印它的主体而不是执行它。
以下工作正常,请注意函数名称后面的括号:
{{ page.date.getFullYear() }}
使用 Eleventy >=2.0.x 进行测试,但也应该适用于早期版本。