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

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

【问题讨论】:

    标签: 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 被添加了,尽管它很脏。
        猜你喜欢
        • 2017-10-12
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        相关资源
        最近更新 更多