FreeMarker 当前日期比较

Posted

技术标签:

【中文标题】FreeMarker 当前日期比较【英文标题】:FreeMarker Current Date Comparison 【发布时间】:2010-11-25 07:51:47 【问题描述】:

是否可以在不将当前日期传递给模板的情况下与 freemarker 模板中的当前日期进行日期比较?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

这似乎对我不起作用。我的 freemarker 模板版本是 2.3.20 . futDate?datetime> 。 foo 正在变为 null【参考方案2】:

在 freemarker 中比较两个日期的更好方法是找出两个日期之间的差异。

<#assign difference = (custom_date?long / 86400000)?round - (.now?long / 86400000)?round />

如果difference大于0,则为未来日期,如果相等,则为同一日期,如果小于,则为上一个日期

【讨论】:

【参考方案3】:

以防其他人遇到此问题。

我在比较两个日期

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

(他们都是 10/10/2019

但由于某种原因它是错误的,即使它是相等的,所以我必须做的是

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

【讨论】:

【参考方案4】:

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

但是您可以将new Date() Java 对象传递给模板。

【讨论】:

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

以上是关于FreeMarker 当前日期比较的主要内容,如果未能解决你的问题,请参考以下文章

如何在 freemarker 语言中将当前日期格式(YYYY-MM-DD HH:MM:SS)转换为(YYMMDD)格式

freemarker中input传日期

Freemarker 在模板中打印日期

java输入的日期与当前的日期做比较?

如何在freemarker中获得当前时间?

将输入类型日期与当前日期进行比较