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

4 Answers

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

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

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

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] 

NO

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

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

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy