【问题标题】:Twig: show the name of the months based on the current localeTwig:根据当前语言环境显示月份的名称
【发布时间】: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 中切换的语言环境参数。

有什么问题?

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    由于你定义了datetimeTwigFilter,你不必调用{{ 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") }}
        

        文档:

        【讨论】:

          猜你喜欢
          • 2017-03-10
          • 1970-01-01
          • 2014-10-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-15
          • 2012-10-13
          相关资源
          最近更新 更多