Twig:根据当前语言环境显示月份的名称
Posted
技术标签:
【中文标题】Twig:根据当前语言环境显示月份的名称【英文标题】:Twig: show the name of the months based on the current locale 【发布时间】:2012-07-28 12:09:11 【问题描述】:我只是想根据当前语言环境显示月份的名称。
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 中切换的语言环境参数。
有什么问题?
【问题讨论】:
【参考方案1】:您可以使用SonataIntlBundle 来处理本地化的日期表示。 Intl
库需要安装。
【讨论】:
我建议改用 Twig 的 Intl 扩展。见***.com/a/23424315/1001110 它没有提供只显示翻译月份的方法。【参考方案2】:由于你定义了datetime
TwigFilter,你不必调用 event.date|date('F')
相反,您应该将其称为 event.date|datetime('%B')
【讨论】:
【参考方案3】:您可能还没有在您的 php 中安装 PHP intl
-library。 http://php.net/manual/de/book.intl.php
【讨论】:
【参考方案4】:如果您已经安装了IntlExtension
,您可以将format_datetime
与自定义模式一起使用。
event.date|format_datetime(pattern="MMMM")
文档:
https://twig.symfony.com/doc/3.x/filters/format_datetime.html https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax【讨论】:
以上是关于Twig:根据当前语言环境显示月份的名称的主要内容,如果未能解决你的问题,请参考以下文章