我只是想根据当前的区域设置显示月份的名称。
{{ event.date|date('F') }}
但是月份总是用英语显示......
我在下面尝试了这段代码,我发现here,但结果是一样的......
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';
}
}
注意:在控制器中我使用$request->getLocale
检查当前的语言环境,它对应于我在parameters.yml中切换的语言环境参数。
有什么问题?
答案 0 :(得分:4)
您可以使用SonataIntlBundle来处理本地化的日期表示。需要安装Intl
库。
答案 1 :(得分:3)
由于您定义了datetime
TwigFilter,因此您无需致电{{ event.date|date('F') }}
相反,您应该调用此{{ event.date|datetime('%B') }}
答案 2 :(得分:2)
您可能尚未在PHP中安装PHP intl
- 库。 http://php.net/manual/de/book.intl.php