format_datetime

这个 format_datetime 筛选器设置日期时间的格式:

1
2
{# Aug 7, 2019, 11:39:12 PM #}
{{ '2019-08-07 23:39:12'|format_datetime() }}

可以调整日期部分和时间部分的输出:

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') }}

支持的值包括: noneshortmediumlongfull .

为了获得更大的灵活性,您甚至可以定义自己的模式(请参见 ICU user guide 对于支持的模式)。

1
2
{# 11 oclock PM, GMT #}
{{ '2019-08-07 23:39:12'|format_datetime(pattern="hh 'oclock' a, zzzz") }}

默认情况下,筛选器使用当前区域设置。可以显式传递:

1
2
{# 7 août 2019 23:39:12 #}
{{ '2019-08-07 23:39:12'|format_datetime(locale='fr') }}

注解

这个 format_datetime 过滤器是 IntlExtension 默认情况下不安装。先安装:

1
$ composer require twig/intl-extra

然后,在symfony项目上,安装 twig/extra-bundle

1
$ composer require twig/extra-bundle

否则,请在Twig环境中显式添加扩展::

use Twig\Extra\Intl\IntlExtension;

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

争论

  • locale :区域设置
  • dateFormat :日期格式
  • timeFormat :时间格式
  • pattern :日期时间模式
  • timezone :日期时区
  • calendar :日历(默认为公历)