Using date and time in templates

Formatting and comparison on dates and times

Template utilities

datefmt

Format a date/time to output a specific format.

Example

Output

{{ timestamp|datefmt('long') }}

January 1, 2024

{{ timestamp|datefmt('Y') }}

2024

More examples of the formats available can be found here: http://babel.pocoo.org/en/latest/dates.html#date-fields

timefmt

Format a time to output a specific format.

ExampleOutput

{{ timevalue|timefmt('short') }}

3:23 PM

{{ timestamp|timefmt('a') }}

PM

More examples of the formats available can be found here: https://babel.pocoo.org/en/latest/dates.html#time-fields

now

This is quick access to the current date and time

<p>The current date is: {{ now|datefmt('MMMM d') }}</p>

Output

<p>The current date is: January 1</p>

day_name

Output the name of the day using the "0 index" of the day of the week.

{{ 3|day_name }}

Output

Wednesday

to_date

Utility to parse a date from a string

{{ '2021-09-01'|to_date }}

Optionally, you can also pass a format to the parsing

{{ '9/1/2021'|to_date(format='%m/%d/%y') }}

to_datetime

Utility to parse a date and time from a string

{{ '2021-09-01 15:23:00'|to_datetime }}

to_time

Utility to parse a time from a string

{{ '15:23'|to_time }}

Optionally, you can also pass a format to the parsing

{{ '1523'|to_time(format='%H%M') }}

from_timestamp

Can be used to convert unix timestamps (i.e. an integer) into date/time to be used by other functions.

{{ 1284101485|from_timestamp|datefmt('long') }}

Output

September 9, 2010

Hide content based on date

Using the advanced jinja2 templating to hide a piece of content depending on the date. This can be used to have something show up before/after/during a date range.

This uses our to_date jinja filter. Take note of the greater than and less than operators.

The to_date is parsed as the first minute and hour of the day so using greater and less than operators is the best way to write the conditionals.

Today, future, or past comparisons

is_today

Show something if the date is today

{% if '2018-12-11'|to_date|is_today %}
  <p>I will show if Dec 12, 2018 is today</p>
{% endif %}

is_future

Show something if the date is in the future

{% if '2018-12-11'|to_date|is_future %}
  <p>I will show if Dec 12, 2018 is in the future</p>
{% endif %}

is_past

Show something if the date is in the past

{% if '2018-12-11'|to_date|is_past %}
  <p>I will show if Dec 12, 2018 is in the past</p>
{% endif %}

Combining the above filters

Show something if the date is today or in the future

{% if '2018-12-11'|to_date|is_today or '2018-12-11'|to_date|is_future %}
  <p>I will show if Dec 12, 2018 is today or is in the future</p>
{% endif %}

Using now to compare to the current day and time

The now is the current date and time

Starting on a date

{% if now > '2018-12-11'|to_date %}
  <p>I will start showing on Dec 11, 2018</p>
{% endif %}

Up to a date

{% if now < '2018-12-11'|to_date %}
  <p>I will stop showing on Dec 11, 2018</p>
{% endif %}

Date range

{% if now > '2018-12-01'|to_date and now < '2019-01-01'|to_date %}
  <p>I will show for the whole month of December</p>
{% endif %}

Last updated