2012-09-18 163 views
6

這很奇怪。如果我使用{{ j }},我可以得到所有12個數字,但添加Twig日期過濾器只需12次就可以回顯「Jan」。樹枝:每年的每月

我如何迴應一年中的所有月份?我有創建一個數組嗎?

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

回答

18

這是因爲小枝將j視爲從1970年1月開始的秒數(所以它始終是1月)。

從樹枝文檔:

日期過濾器接受字符串(它必須是在由 支持的strtotime功能的格式),日期時間的情況下,或DateInterval 實例。

這應該工作:

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

由塞浦路斯給出的解決方案扔我下面的錯誤

功能 「日期」 不存在

因此,我改變代碼到

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

和這工作對我....感謝Cyprian