format_datetime
¶
The format_datetime
filter formats a date time:
1 2 |
{# Aug 7, 2019, 11:39:12 PM #}
{{ '2019-08-07 23:39:12'|format_datetime() }}
|
Format ¶
You can tweak the output for the date part and the time part:
1 2 3 4 5 6 7 8 |
{# 23:39 #}
{{ '2019-08-07 23:39:12'|format_datetime('none', 'short', locale='fr') }}
{# 07/08/2019 #}
{{ '2019-08-07 23:39:12'|format_datetime('short', 'none', locale='fr') }}
{# mercredi 7 août 2019 23:39:12 UTC #}
{{ '2019-08-07 23:39:12'|format_datetime('full', 'full', locale='fr') }}
|
Supported values are: none
, short
, medium
, long
, and full
.
For greater flexibility, you can even define your own pattern (see the ICU user guide for supported patterns).
1 2 |
{# 11 oclock PM, GMT #}
{{ '2019-08-07 23:39:12'|format_datetime(pattern="hh 'oclock' a, zzzz") }}
|
Locale ¶
By default, the filter uses the current locale. You can pass it explicitly:
1 2 |
{# 7 août 2019 23:39:12 #}
{{ '2019-08-07 23:39:12'|format_datetime(locale='fr') }}
|
Timezone ¶
By default, the date is displayed by applying the default timezone (the one specified in php.ini or declared in Twig -- see below), but you can override it by explicitly specifying a timezone:
1 |
{{ datetime|format_datetime(locale='en', timezone='Pacific/Midway') }}
|
If the date is already a DateTime object, and if you want to keep its current
timezone, pass false
as the timezone value:
1 |
{{ datetime|format_datetime(locale='en', timezone=false) }}
|
The default timezone can also be set globally by calling setTimezone()
:
1 2 |
$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('Europe/Paris');
|
Note
The format_datetime
filter is part of the IntlExtension
which is not
installed by default. Install it first:
1 |
$ composer require twig/intl-extra
|
Then, on Symfony projects, install the twig/extra-bundle
:
1 |
$ composer require twig/extra-bundle
|
Otherwise, add the extension explicitly on the Twig environment:
1 2 3 4 |
use Twig\Extra\Intl\IntlExtension;
$twig = new \Twig\Environment(...);
$twig->addExtension(new IntlExtension());
|
Arguments ¶
locale
: The localelocale: ロケールdateFormat
: The date formatdateFormat: 日付形式timeFormat
: The time formattimeFormat: 時間形式pattern
: A date time patternpattern: 日時パターンtimezone
: The date timezone nametimezone: 日付のタイムゾーン名calendar
: The calendar (Gregorian by default)calendar: カレンダー (デフォルトではグレゴリオ暦)