【问题标题】:Need a date of a last week in Freemarker在 Freemarker 中需要上周的日期
【发布时间】:2015-05-20 20:58:33
【问题描述】:

我需要从当前日期获取上周的日期以运行数据库查询。

我有:

<#assign dateToday = .now?string("yyyy-MM-dd'T'HH:mm:ss'+00:00'") />

打印“2015-03-17T23:56:45+00:00”

我需要得到“2015-03-10T23:56:45+00:00”

【问题讨论】:

  • 在 FreeMarker 模板之外计算日期并将其放入模型中。
  • 模板不用于计算,它们用于显示已经计算的数据。 Thar 真的是它们的全部意义,你可以有这些分离的关注点。因此,即使下面有针对此的 hack,也要避免做这样的事情。
  • @ddekany - 这不是 hack,sev 只是使用了 FTL 中的可用方法。
  • @Chunkz:FreeMarker 比其他一些模板语言有一些额外的能力,因为纯粹与演示相关的任务并不简单。然而,这不可避免地使语言足够完整,以至于有些人会受到鼓励去解决模板中不属于那里的问题。例如,尝试使用 Mustache 模板来做到这一点。它不会让你。 OTOH 权力也不会用于合法用途。我猜你明白了。

标签: date freemarker


【解决方案1】:

您可以将日期转换为毫秒,然后减去 1 周,如下所示:

<#assign dateToday = .now?long />
<#assign lastWeek = dateToday - (7 * 24 * 60 * 60 * 1000) />

${dateToday?number_to_datetime?iso_utc}<br>
${lastWeek?number_to_datetime?iso_utc}

输出:

2015-03-18T18:31:49Z
2015-03-11T18:31:49Z

来源:

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 2021-06-15
    • 1970-01-01
    • 2019-10-07
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多