Twig:每年的每个月

时间:2012-09-18 12:18:53

标签: twig

这很奇怪。如果我使用{{ j }},我会得到所有12个数字,但添加Twig日期过滤器只会回显“Jan”12次。

我如何回应一年中的所有月份?我是否创建了一个数组?

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

3 个答案:

答案 0 :(得分:18)

这是因为twig将j视为1970年1月以来的秒数(所以它始终是1月)。

来自twig文档:

  

日期过滤器接受字符串(它必须采用支持的格式   strtotime函数),DateTime实例或DateInterval   实例

这应该有效:

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

答案 1 :(得分:2)

Cyprian给出的解决方案给我带来了以下错误

  

“日期”功能不存在

所以我将代码更改为

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

这对我有用....感谢塞浦路斯

答案 2 :(得分:0)

对我来说:

45fps

工作正常。