date

这个 date 筛选将日期格式化为给定格式:

1
{{ post.published_at|date("m/d/Y") }}

格式说明符与支持的格式说明符相同 date ,除非筛选的数据是类型 DateInterval ,格式必须符合 DateInterval::format 相反。

这个 date 过滤器接受字符串(它必须采用 strtotime 功能), DateTime 实例,或 DateInterval 实例。例如,要显示当前日期,请过滤单词“now”:

1
{{ "now"|date("m/d/Y") }}

要转义日期格式中的单词和字符,请使用 \\ 在每个字符前面:

1
{{ post.published_at|date("F jS \\a\\t g:ia") }}

如果传递给 date 过滤器是 null ,默认返回当前日期。如果需要空字符串而不是当前日期,请使用三元运算符:

1
{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}

如果没有提供格式,Twig将使用默认格式: F j, Y H:i . 可以通过调用 setDateFormat() 方法在 core 扩展实例。第一个参数是日期的默认格式,第二个参数是日期间隔的默认格式:

$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setDateFormat('d/m/Y', '%d days');

时区

默认情况下,通过应用默认时区(在中指定的时区)来显示日期php.ini文件或在Twig中声明(见下文),但可以通过显式指定时区来重写它:

1
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}

如果日期已经是日期时间对象,并且要保留其当前时区,请通过 false 作为时区值:

1
{{ post.published_at|date("m/d/Y", false) }}

也可以通过调用全局设置默认时区 setTimezone() ::

$twig = new \Twig\Environment($loader);
$twig->getExtension(\Twig\Extension\CoreExtension::class)->setTimezone('Europe/Paris');

争论

  • format :日期格式
  • timezone :日期时区