Date Filters

Date Filters

add_years filter

Return a date object operand years in the future from the input date.

add_years: Integer operand

If operand is negative, return a date that many years in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

add_weeks filter

Return a date object operand weeks in the future from the input date.

add_weeks: Integer operand

If operand is negative, return a date that many weeks in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

add_seconds filter

Return a date object operand seconds in the future from the input date.

add_seconds: Integer operand

If operand is negative, return a date that many seconds in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

add_months filter

Return a date object operand months in the future from the input date.

add_months: Integer operand

If operand is negative, return a date that many months in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

add_minutes filter

Return a date object operand minutes in the future from the input date.

add_minutes: Integer operand

If operand is negative, return a date that many minutes in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

add_hours filter

Return a date object operand hours in the future from the input date.

add_hours: Integer operand

If operand is negative, return a date that many hours in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

add_days filter

Return a date object operand days in the future from the input date.

add_days: Integer operand

If operand is negative, return a date that many days in the past from the input date.

Related

{% add_stylesheet %}

Add a stylesheet asset to the head of the current page via a <link> tag

{% add_javascript %}

Add a script asset to the current page via a <script> tag

{% add_javascript inline %}

Outputs javascript code in an inline script

{% add_stylesheet inline %}

Outputs an inline stylesheet in a <style> tag.

date filter

Returns the input as a date. If format is specified, converts the date to a string before returning it using the given format. The format must be a valid standard or custom .NET date format.

date: String format

If the input is already a date object, it will be used as-is - either to be formatted or returned without alteration. If the input is a number, it will be interpreted as a unix timestamp - that is the seconds since the Unix Epoch (midnight on January 1, 1970 UTC). If the input is not already a date and is not a number, it will attempt to parse it as the string representation of a date. If the input cannot be converted to a date using any of the previous methods, it will use the current date and time - which will prevent the page from being fast-cached. In all cases where the date filter creates a new date object, it uses the current timezone - which defaults to the site&#39;s timezone but may be set explicitly using the {% set_timezone %} method.

Examples

Format an entity date field (e.g. date_opened) for display using the date filter.

Format an entity date field with the date filter

Copy
{%- if entity.date_opened.is_valid -%}
<p><strong>Date Opened</strong>: {{ entity.date_opened | date: "MMMM dd, yyyy" }}</p>
{%- endif -%}

You can use the date filter either to create a date object or to format a date as a string.

Many ways to use the date filter

Copy
{% set_timezone 'UTC' %}

create a date object

{{ "2009-09-09" | date }}
9/9/2009 12:00:00 AM
{{ "2009-09-09" | date: "D" }}
Wednesday, September 9, 2009
{{ 0 | date: "D" }}
Thursday, January 1, 1970
{{ 1756239994 | date: "D" }}
Tuesday, August 26, 2025

Defaults to the current date

{{"now" | date}}
2009-09-09T00:00:00.0000000+00:00 (or whatever the current date is)

format a date as a string

{{request.date | date: "d"}}
9/9/2009
{{request.date | date: "D"}}
Sunday, September 9, 2009
{{request.date | date: "o"}}
9/9/2009 12:00:00 AM
{{request.date | date: "MMMM dd, yyyy"}}
September 09, 2009

Set a date range (e.g. from now to one month ahead) and fetch calendar_entries into the template.

Fetch calendar_entries for the next month using assign and date filters

Copy
{%- assign minDate = "now" | midnight -%}
{%- assign maxDate = minDate | add_months: 1 -%}
{%- calendar_entries output_to_template start_date:minDate end_date:maxDate limit:30 sort_by:"start_date" sort_direction:"asc" -%}

Use a post_date or other date-time field and format or compare it with the date filter and date properties.

Use a post_date or date-time field with the date filter

Copy
{%- if entity.rehearsal_start.is_valid -%}
<p>Rehearsal will begin on {{ entity.rehearsal_start | date: "MMMM dd, yyyy 'at' h:m t" }} UTC</p>
{%- endif -%}

Set a date range with midnight and add_months, then fetch the next 30 calendar_entries sorted by start_date.

Get Calendar Entries for the Next Month

Copy
{%- var minDate = "now" | midnight -%}
{%- var maxDate = "now" | midnight | add_months: 1 -%}
{%- calendar_entries var entries = start_date:minDate end_date:maxDate limit:30 sort_by:"start_date" sort_direction:"asc" -%}

Use simple date math to get the start and end dates to use for the calendar_entries method, then store the result in the entries variable.

Related

{{ date }}

A field containing a user-selected date

{{ date_field }}

Should be used to display a date field inside a form.

midnight filter

Return the input as a date at midnight of the same day. That is, with hours, minutes, and seconds set to 0.

midnight

Examples

Use the midnight filter to get the input as a date at midnight.

Using the midnight filter

Copy
{{ request.date | midnight }}
2009-09-09T00:00:00.0000000+00:00 (or whatever the current date is)
{{ "2020-02-26 14:42:02" | midnight }}
2/26/2020 12:00:00 AM
{{ 256 | midnight }}
1/1/1970 12:00:00 AM
{{ 1756239994 | midnight }}
8/26/2025 12:00:00 AM

Related

time_diff filter

If format is unspecified, returns a time_diff object describing the difference between the current date and the other date. If format is specified, converts the time difference to a string before returning it using the given format. If supplied, the format must be a valid standard or custom .NET TimeSpan format.

time_diff: time otherString format

Examples

Compute and display a time difference between two dates.

Compute and display a time difference between two dates

Copy
{%- var diff = request.date | time_diff: calendarEntry.start_date -%}
{%- var is_future = true -%}
{%- if diff.total_seconds < 0 -%}
{%- set is_future = false -%}
{%- endif -%}
This event {% if is_future %}will start in{% else %}started{% endif -%}
{%- if diff.days > 0 %}{{diff.days }} days{% endif -%}
{%- if diff.hours > 0 %}{{diff.hours }} hours{% endif -%}
{%- if diff.minutes > 0 %}{{diff.minutes }} minutes{% endif -%}
{%- if diff.hours == 0 and diff.seconds > 0 %}{{diff.seconds }} seconds{% endif -%}
{%- unless is_future %}ago{% endunless -%}

Related

{{ time_diff }}

Contains information about the difference between two dates.

{{ time }}

Represents a specific instant in a specific timezone.

timezone filter

Returns the timezone that the date is in. If full is true or if an abbreviated timezone name is not available, returns the full timezone identifier (eg: &quot;Europe/Rome&quot;). If full is false (default) or not specified and an abbreviated timezone name is available returns the abbreviated timezone name (eg: &quot;PST&quot; or &quot;PDT&quot;).

timezone: Boolean full

Examples

Set the request timezone from a string (e.g. IANA zone) so date/time output uses that zone.

Set the request timezone

Copy
{%- set_timezone "America/Indianapolis" -%}
{{- request.date | timezone }}
America/Indianapolis
{%- var cityname = "Amsterdam" -%}
{%- set_timezone "Europe/" | append: cityname -%}
{{- request.date | timezone }}
Europe/Amsterdam

Use the timezone filter to output the timezone used by a date object. The output may either be the full timezone identifier or the shortened timezone abbreviation.

Using the timezone filter

Copy
{{request.date | timezone}}
EST
{{request.date | add_months: 6 | timezone}}
EDT
{{request.date | timezone: true}}
America/Indiana/Indianapolis

Demonstrates multiple ways to use the to_timezone filter.

Convert or display dates in a timezone (to_timezone filter)

Copy

Display the article post date in multiple timezones

{{ article.post_date | to_timezone: session.user_timezone }} local time
{{- article.post_date | to_timezone: 'UTC' }} UTC
{{- article.post_date | to_timezone: 'Europe/Rome' }} CET
2026-02-16 6:00:00 local time
2026-02-16 10:00:00 UTC
2026-02-16 11:00:00 CET

Convert a date to a different timezone and display it with formatting

{%- if entity.alt_timezone.is_valid -%}
{{- entity.alt_date | to_timezone: entity.alt_timezone | date: 'f' }} {{ entity.alt_timezone -}}
{%- endif -%}
2026-02-16 12:00:00

Related

{{ timezone }}

to_timezone filter

Converts a date to the specified timezone.

to_timezone: String timezone

Examples

Demonstrates multiple ways to use the to_timezone filter.

Convert or display dates in a timezone (to_timezone filter)

Copy

Display the article post date in multiple timezones

{{ article.post_date | to_timezone: session.user_timezone }} local time
{{- article.post_date | to_timezone: 'UTC' }} UTC
{{- article.post_date | to_timezone: 'Europe/Rome' }} CET
2026-02-16 6:00:00 local time
2026-02-16 10:00:00 UTC
2026-02-16 11:00:00 CET

Convert a date to a different timezone and display it with formatting

{%- if entity.alt_timezone.is_valid -%}
{{- entity.alt_date | to_timezone: entity.alt_timezone | date: 'f' }} {{ entity.alt_timezone -}}
{%- endif -%}
2026-02-16 12:00:00

Related

{{ timezone }}

{% set_timezone %}

Sets the default timezone to use when rendering dates and times on the page that do not already have a separate timezone configured.