Rich
Rich

Reputation:

FreeMarker Current Date Comparison

Is it possible to do date comparisons against the current date in a freemarker template without passing the current date into the template?

Upvotes: 10

Views: 23049

Answers (4)

Harsha Kasturi
Harsha Kasturi

Reputation: 243

Better way to compare two dates in freemarker is to find the difference between two dates.

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

If the difference is greater than 0, it's a future date, if it equal it is same date, if it less than, it is previous date

Upvotes: 2

noob
noob

Reputation: 1

In case someone else has this issue.

I was comparing 2 dates

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

(they both were 10/10/2019)

but for some reason it was false even though it was equal, so what I had to do was

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

Upvotes: 0

Chaquotay inactive
Chaquotay inactive

Reputation: 2232

From FreeMarker 2.3.17 on you can use the new special variable .now:

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

Upvotes: 22

Daniel Moura
Daniel Moura

Reputation: 7966

NO

Freemarker is a templating library, there isn't a today variable.

But you can pass a new Date() Java Object to the template.

Upvotes: -8

Related Questions