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
:日期时区