如何在 symfony2 Twig 中正确使用日期语言环境,以便:
for GB browser I display format 27/10/2013
for US browser I display format 10/27/2013
首先,我必须启用默认包含在 symfony2 框架中的 Intl twig 扩展(默认情况下未启用)
通过在 config.yml 中添加它来启用它(例如 src/Project/TestBundle/Resources/config/):
services:
twig.extension.intl:
class: Twig_Extensions_Extension_Intl
tags:
- { name: twig.extension }
然后你像这样使用:
{{ 'now' | localizeddate('short', 'none') }}
// outputs dd/mm/yyyy or mm/dd/yyyy depending on where browser is coming from
如果这不能自动工作,那么您需要像这样(在您的控制器中)通过浏览器强制使用首选语言
$this->getRequest()->setLocale($this->getRequest()->getPreferredLanguage());
这将根据浏览器的访问者设置使用有效的日期格式(例如带有值 en_GB 或 en_US 的 Accept-Language 标头)
您可以通过在本地化日期中添加第三个参数来强制使用某些语言环境(例如“de-DE”)。要获取当前语言环境,请使用 {{ app.request.locale }}
请注意,树枝文档有点过时了,所以最好使用我上面所做的