Twig:根据当前区域设置显示月份的名称

zii*_*web 12 symfony twig

我只是想根据当前的语言环境显示月份的名称.

{{ event.date|date('F') }}
Run Code Online (Sandbox Code Playgroud)

但这几个月总是以英文显示......

我在这里找到这个代码,但是结果是一样的......

class Helper_Twig extends Twig_Extension
{
    public function getFilters()
    {
        return array(
            'datetime' => new Twig_Filter_Method($this, 'datetime')
        );
    }

    public function datetime($d, $format = "%B %e")
    {
        if ($d instanceof \DateTime) {
            $d = $d->getTimestamp();
        }

        return strftime($format, $d);
    }

    public function getName()
    {
        return 'Helper';
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:在控制器中我正在检查当前的语言环境$request->getLocale,它对应于我在parameters.yml中切换的语言环境参数.

问题是什么?

Mun*_*Das 3

您可以使用SonataIntlBundle来处理本地化日期表示。Intl不过需要安装库。

  • 我建议改用 Twig 的 Intl 扩展。请参阅http://stackoverflow.com/a/23424315/1001110 (2认同)