2012-07-30 47 views
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中切換的語言環境參數。

什麼問題?

回答

4

您可以使用SonataIntlBundle來處理本地化的日期表示。需要安裝Intl庫。

+1

我推薦使用Twig的Intl擴展。請參閱http://stackoverflow.com/a/23424315/1001110 – 2014-05-06 12:50:10

+1

它沒有提供僅顯示翻譯月份的方法。 – 2016-03-21 13:20:51

2

既然你定義datetime TwigFilter,你不必叫{{ event.date|date('F') }}

相反,你應該把這個{{ event.date|datetime('%B') }}