1.1 The timezone support has been added in Twig 1.1.
1.5 The default date format support has been added in Twig 1.5.
1.6.1 The default timezone support has been added in Twig 1.6.1.
The date
filter formats a date to a given format:
{{ post.published_at|date("m/d/Y") }}
The date
filter accepts strings (it must be in a format supported by the strtotime function), DateTime instances, or DateInterval instances. For instance, to display the current date, filter the word "now":
{{ "now"|date("m/d/Y") }}
To escape words and characters in the date format use \\
in front of each character:
{{ post.published_at|date("F jS \\a\\t g:ia") }}
You can also specify a timezone:
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}
If no format is provided, Twig will use the default one: F j, Y H:i
. This default can be easily changed by calling the setDateFormat()
method on the core
extension instance. The first argument is the default format for dates and the second one is the default format for date intervals:
$twig = new Twig_Environment($loader);
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
The default timezone can also be set globally by calling setTimezone()
:
$twig = new Twig_Environment($loader);
$twig->getExtension('core')->setTimezone('Europe/Paris');
If the value passed to the date
filter is null, it will return the current date by default. If an empty string is desired instead of the current date, use a ternary operator:
{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}