FreeMarker当前日期比较

10

在不将当前日期传递到模板中的情况下,是否可以在Freemarker模板中针对当前日期进行日期比较?

4个回答

22

FreeMarker 2.3.17 开始,您可以使用新的特殊变量 .now

[#assign foo = .now > yesterday?datetime]

这似乎对我不起作用。我的freemarker模板版本是2.3.20。<#assign futDate="2011-05-16T21:32:13Z" ><#assign foo = .now > futDate?datetime>。foo变成了null。 - Tanmay Patil

2
更好的比较两个日期的方法是在freemarker中找到两个日期之间的差异。
<#assign difference = (custom_date?long / 86400000)?round - (.now?long / 86400000)?round />

如果difference大于0,那么它是一个未来的日期,如果它相等,则是同一天,如果小于0,则是过去的日期。

0

如果有其他人遇到了这个问题。

我正在比较两个日期

[#assign .now?date lte today?date]

(它们两个都是 2019年10月10日)

但出于某种原因,它却是false,尽管它是相等的,所以我不得不...

[#assign .now?string["dd/MM/yyyy"]?date lte today?date]

-8

不行

Freemarker是一个模板库,没有today变量。

但是你可以将一个new Date()的Java对象传递给模板。


10
您应该考虑更新或删除此回答,因为它现在已经不正确。 - juan
原则上不应该有一个当前日期,但这是一个如此频繁的请求,因此尽管它很脏,.now被添加了。 - ddekany

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接