format_datetime

The format_datetime filter formats a date time:

format_datetime フィルターは、日時をフォーマットします。
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.

サポートされている値は、none、short、medium、long、および full です。

For greater flexibility, you can even define your own pattern (see the ICU user guide for supported patterns).

柔軟性を高めるために、独自のパターンを定義することもできます (サポートされているパターンについては、ICU ユーザー ガイドを参照してください)。
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:

デフォルトでは、日付はデフォルトのタイムゾーン (php.ini で指定されたもの、または Twig で宣言されたもの -- 以下を参照) を適用することによって表示されますが、タイムゾーンを明示的に指定することでオーバーライドできます。
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:

日付がすでに DateTime オブジェクトであり、現在のタイムゾーンを維持したい場合は、タイムゾーンの値として false を渡します。
1
{{ datetime|format_datetime(locale='en', timezone=false) }}

The default timezone can also be set globally by calling setTimezone():

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:

format_datetime フィルターは、デフォルトではインストールされない IntlExtension の一部です。最初にインストールします。
1
$ composer require twig/intl-extra

Then, on Symfony projects, install the twig/extra-bundle:

次に、Symfony プロジェクトで、twig/extra-bundle をインストールします。
1
$ composer require twig/extra-bundle

Otherwise, add the extension explicitly on the Twig environment:

それ以外の場合は、Twig 環境で拡張機能を明示的に追加します。
1
2
3
4
use Twig\Extra\Intl\IntlExtension;

$twig = new \Twig\Environment(...);
$twig->addExtension(new IntlExtension());

Arguments

  • locale: The locale
    locale: ロケール
  • dateFormat: The date format
    dateFormat: 日付形式
  • timeFormat: The time format
    timeFormat: 時間形式
  • pattern: A date time pattern
    pattern: 日時パターン
  • timezone: The date timezone name
    timezone: 日付のタイムゾーン名
  • calendar: The calendar (Gregorian by default)
    calendar: カレンダー (デフォルトではグレゴリオ暦)