如何在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 的接受语言标头)
您可以通过在 localizeddate 中添加第三个参数来强制使用某些语言环境(例如"de-DE")。要获取当前区域设置,请使用 {{ app.request.locale }}
请注意,twig 文档有点过时了,所以最好使用我上面所做的