这取决于您希望日期显示为的格式。
静态日期格式
如果要显示静态格式(对于所有语言环境都相同)(例如,Atom提要使用ISO 8601),则应使用Twig的date
过滤器:
{{ game.gameDate|date('Y-m-d\\TH:i:sP') }}
它将始终以以下格式返回日期时间:
2014-05-02T08:55:41Z
date
过滤器接受的格式字符串与PHP date()
函数使用的格式字符串相同。(据我所知,唯一的区别是您不能使用可以在PHP date()
函数中使用的预定义常量)
本地化的日期(和时间)
但是,由于要在浏览器中呈现它,因此可能需要以人类可读的格式显示它,并针对用户的语言和位置进行本地化。您可以使用Intl扩展(使用PHP的IntlDateFormatter)来代替自己进行本地化。它提供了一个过滤器localizeddate
,它将使用本地化格式输出日期和时间。
localizeddate( date_format, time_format [, locale ] )
的参数localizeddate
:
date_format
:格式字符串之一(请参见下文)
time_format
:格式字符串之一(请参见下文)
locale
:(可选)使用它来覆盖配置的语言环境。忽略此参数以使用默认语言环境,可以在Symfony的配置中对其进行配置。
(还有更多信息,请参阅文档以获取可能的参数的完整列表)
对于date_format
,time_format
您可以使用以下字符串之一:
'none'
如果您不想包含此元素
'short'
最简短的样式(在英语语言环境中为12/13/52或3:30 pm)
'medium'
用于中等风格(1952年1月12日在英语语言环境中)
'long'
长样式(在英语语言环境中为1952年1月12日或下午3:30:32)
'full'
完全指定的样式(在英语语言环境中,1952年4月12日,星期二或太平洋标准时间下午3:30:42)
例
因此,例如,如果要以与等效的格式显示日期,请February 6, 2014 at 10:52 AM
在Twig模板中使用以下行:
{{ game.gameDate|localizeddate('long', 'short') }}
但是,如果您使用其他语言环境,则结果将针对该语言环境进行本地化:
6 februari 2014 10:52
对于nl
语言环境;
6 février 2014 10:52
对于fr
语言环境;
6. Februar 2014 10:52
对于de
语言环境;等等
如您所见,localizeddate
不仅翻译月份名称,而且使用本地符号。英文符号将日期放在月份之后,而荷兰语,法语和德语符号则将日期放在月份之前。英文和德文的月份名称以大写字母开头,而荷兰文和法文的月份名称为小写字母。德国日期后面加了一个圆点。
安装/设置语言环境
有关Intl扩展的安装说明,请参见此单独的答案。
{{ game.gameDate|date('Y-m-d H:i:s') }}
日期和时间。我在几分钟内找不到角色。