add_years filter
Return a date object operand years in the future from the input date.
If operand is negative, return a date that many years in the past from the input date.
Liquid filters for dates and times (format, add days, etc.).
Return a date object operand years in the future from the input date.
If operand is negative, return a date that many years in the past from the input date.
{%- if client.allowed and client.num_sessions > 6 and client.VIP != "true" and client.first_request_date < request.date | add_years: -1 -%}
<p>You have viewed this site {{ client.num_sessions }} since {{ client.first_request_date | date: 'MMMM yyyy' }}. During that time you have looked at {{ client.num_pages }} pages. We are happy that you have taken so much interest in us, and would like to invite you to <a href="#"> join our VIP club</a>!</p>
{%- endif -%}{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
Return a date object operand weeks in the future from the input date.
If operand is negative, return a date that many weeks in the past from the input date.
{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
Return a date object operand seconds in the future from the input date.
If operand is negative, return a date that many seconds in the past from the input date.
{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
Return a date object operand months in the future from the input date.
If operand is negative, return a date that many months in the past from the input date.
{%- 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" -%}{%- 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" -%}{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
Return a date object operand minutes in the future from the input date.
If operand is negative, return a date that many minutes in the past from the input date.
{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
Return a date object operand hours in the future from the input date.
If operand is negative, return a date that many hours in the past from the input date.
{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
Return a date object operand days in the future from the input date.
If operand is negative, return a date that many days in the past from the input date.
{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM
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.
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's timezone but may be set explicitly using the {% set_timezone %} method.
{%- if entity.date_opened.is_valid -%}
<p><strong>Date Opened</strong>: {{ entity.date_opened | date: "MMMM dd, yyyy" }}</p>
{%- endif -%}{% 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
{%- 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 -%}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' }} CET2026-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
{%- if calendar_entry.start_date.date.is_future -%}
Event will start on {{calendar_entry.start_date | date: 'g' -}}
{%- elsif calendar_entry.end_date.date.is_future -%}
Event is currently in progress
{%- else -%}
Event completed on {{calendar_entry.end_date | date: 'g' -}}
{%- endif -%}{%- if client.allowed and client.num_sessions > 6 and client.VIP != "true" and client.first_request_date < request.date | add_years: -1 -%}
<p>You have viewed this site {{ client.num_sessions }} since {{ client.first_request_date | date: 'MMMM yyyy' }}. During that time you have looked at {{ client.num_pages }} pages. We are happy that you have taken so much interest in us, and would like to invite you to <a href="#"> join our VIP club</a>!</p>
{%- endif -%}{% var sep9 = '2009-09-09 14:00:00Z' | date | to_timezone: 'America/New_York' %}Format a date as a short date string
{{sep9 | format: "d"}}9/9/2009
Formats a date as a short date string (d = short date).
Format a date as a short date string with the time
{{sep9 | format: "g"}}9/9/2009 10:00 AM
Formats a date as a short date string with the time (g = short date with time).
Format a date as a long date string
{{sep9 | format: "D"}}Sunday, September 9, 2009
Formats a date as a long date string (D = long date).
Format a date as a long date string with the time
{{sep9 | format: "f"}}Sunday, September 9, 2009 10:00 AM
Formats a date as a long date string with the time (f = long date with time).
Format a date according to the ISO 8601 standard
{{sep9 | format: "o"}}9/9/2009 2:00:00 PM
Formats a date according to the ISO 8601 standard (o = round trip format with offset).
Format a date as a sortable date string
{{sep9 | format: "u"}}9/9/2009 2:00:00 PM
Formats a date as a sortable date string (u = universal sortable date in UTC timezone).
Format a date to a long date string using a custom date format string
{{sep9 | format: "MMMM dd, yyyy 'at' HH:mm:ss"}}September 09, 2009 at 10:00:00
Formats a date using a custom .NET date format string.
Format a date to a short date string using a custom date format string
{{sep9 | format: "hh:mm tt 'on' MM-dd-yy"}}10:00 AM on 09-09-09
Formats a date using a custom .NET date format string.
You can also use the date filter to format a date
{{sep9 | date: "hh:mm tt 'on' MM-dd-yy"}}10:00 AM on 09-09-09
The date and format filters use the same format strings for dates, but the date filter can only be used to format dates while the format filter can also be used to format numbers and time diffs.
Return the input as a date at midnight of the same day. That is, with hours, minutes, and seconds set to 0.
{%- 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" -%}{%- 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" -%}{{ 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
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.
{%- 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 -%}{% var startdate = '2009-09-09 14:00:00Z' | date | to_timezone: 'America/New_York' %}
{% var enddate = '2009-09-10 17:32:00Z' | date | to_timezone: 'America/New_York' %}
{% var diff = startdate | time_diff: enddate %}Format a time diff as a constant time span string
{{ diff | format: "c" }}-1.03:32:00
Formats a time diff as a constant time span string (c = constant time span).
Format a time diff as a compact time span string
{{ diff | format: "g" }}-1:3:32:00
Format a time diff using a custom .NET TimeSpan format string
{% if diff.total_seconds < 0 %}-{% endif %}{{ diff | format: "d' days, 'h' hours, and 'm' minutes'" }}-1 days, 3 hours, and 32 minutes
Formats a time diff using a custom .NET TimeSpan format string. Since custom .NET TimeSpan format strings do not have a way to output the minus sign for negative time spans, you have to check for negative time spans separately.
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: "Europe/Rome"). If full is false (default) or not specified and an abbreviated timezone name is available returns the abbreviated timezone name (eg: "PST" or "PDT").
{%- set_timezone "America/Indianapolis" -%}
{{- request.date | timezone }}America/Indianapolis
{%- var cityname = "Amsterdam" -%}
{%- set_timezone "Europe/" | append: cityname -%}
{{- request.date | timezone }}Europe/Amsterdam
{{request.date | timezone}}EST
{{request.date | add_months: 6 | timezone}}EDT
{{request.date | timezone: true}}America/Indiana/Indianapolis
Converts a date to the specified timezone.
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' }} CET2026-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
{% var sep9 = '2009-09-09 14:00:00Z' | date | to_timezone: 'America/New_York' %}Format a date as a short date string
{{sep9 | format: "d"}}9/9/2009
Formats a date as a short date string (d = short date).
Format a date as a short date string with the time
{{sep9 | format: "g"}}9/9/2009 10:00 AM
Formats a date as a short date string with the time (g = short date with time).
Format a date as a long date string
{{sep9 | format: "D"}}Sunday, September 9, 2009
Formats a date as a long date string (D = long date).
Format a date as a long date string with the time
{{sep9 | format: "f"}}Sunday, September 9, 2009 10:00 AM
Formats a date as a long date string with the time (f = long date with time).
Format a date according to the ISO 8601 standard
{{sep9 | format: "o"}}9/9/2009 2:00:00 PM
Formats a date according to the ISO 8601 standard (o = round trip format with offset).
Format a date as a sortable date string
{{sep9 | format: "u"}}9/9/2009 2:00:00 PM
Formats a date as a sortable date string (u = universal sortable date in UTC timezone).
Format a date to a long date string using a custom date format string
{{sep9 | format: "MMMM dd, yyyy 'at' HH:mm:ss"}}September 09, 2009 at 10:00:00
Formats a date using a custom .NET date format string.
Format a date to a short date string using a custom date format string
{{sep9 | format: "hh:mm tt 'on' MM-dd-yy"}}10:00 AM on 09-09-09
Formats a date using a custom .NET date format string.
You can also use the date filter to format a date
{{sep9 | date: "hh:mm tt 'on' MM-dd-yy"}}10:00 AM on 09-09-09
The date and format filters use the same format strings for dates, but the date filter can only be used to format dates while the format filter can also be used to format numbers and time diffs.
{% var startdate = '2009-09-09T00:00:00Z' | to_timezone: 'UTC' %}add_seconds
{{ startdate | add_seconds: 3 }}9/9/2009 12:00:03 AM
{{ startdate | add_seconds: -10239 }}9/8/2009 9:09:21 PM
add_minutes
{{ startdate | add_minutes: 3 }}9/9/2009 12:03:00 AM
{{ startdate | add_minutes: -180 }}9/8/2009 9:00:00 PM
add_hours
{{ startdate | add_hours: 3 }}9/9/2009 3:00:00 AM
{{ startdate | add_hours: -32 }}9/7/2009 4:00:00 PM
add_days
{{ startdate | add_days: 3 }}9/12/2009 12:00:00 AM
{{ startdate | add_days: -2 }}9/7/2009 12:00:00 AM
add_weeks
{{ startdate | add_weeks: 3 }}9/30/2009 12:00:00 AM
{{ startdate | add_weeks: -7 }}7/22/2009 12:00:00 AM
add_months
{{ startdate | add_months: 3 }}12/9/2009 12:00:00 AM
{{ startdate | add_months: -10 }}11/9/2008 12:00:00 AM
add_years
{{ startdate | add_years: 3 }}9/9/2012 12:00:00 AM
{{ startdate | add_years: -1 }}9/9/2008 12:00:00 AM