2012-09-18 32 views
6

これは変です。 {{ j }}を使用すると、12桁の数字がすべて表示されますが、Twigの日付フィルタを追加すると「Jan」が12回エコーされます。小枝:今年の各月

年のすべての月をエコーアウトするにはどうすればよいですか?代わりに配列を作成していますか?

<select> 
{% for j in range(1, 12) %} 
    <option>{{ j|date('M') }}</option> 
{% endfor %} 
</select> 

答えて

18

これは、twigがjを1970年1月からの秒数で処理するためです(したがって、常に1月です)。小枝ドキュメントから

日付フィルタは、文字列(それが のstrtotime関数によってサポートされる形式でなければならない)、DateTimeのインスタンス、またはDateInterval インスタンスを受け付けます。

これは動作するはずです:シプリアンで与え

{% for j in range(1, 12) %} 
    <option>{{ date('2012-' ~ j ~ '-01') |date('M') }}</option> 
{% endfor %} 
2

ソリューションは私に機能 "日付" は

は、だから私は変更存在しない

次のエラーをThrowedコードto

{% for j in 1..12 %} 
    <option>{{ j |date('2012-' ~ j ~ '-01') |date('M') }}</option> 
{% endfor %} 

これは私のために働いた....ありがとうCyprian