如何在 Symfony2(2.4 及更高版本)中正确使用日期区域设置



如何在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 文档有点过时了,所以最好使用我上面所做的

最新更新