Twig 细枝:一年中的每个月

Twig 细枝:一年中的每个月,twig,Twig,这很奇怪。如果我使用{{j},我会得到所有12个数字,但是添加细枝日期过滤器只会回显“Jan”12次 一年中的所有月份我该如何回应?我有创建数组的方法吗 <select> {% for j in range(1, 12) %} <option>{{ j|date('M') }}</option> {% endfor %} </select> {j在(1,12)%范围内的百分比} {{j}日期('M')} {%endfor%} 这是因为t

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

一年中的所有月份我该如何回应?我有创建数组的方法吗

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

{j在(1,12)%范围内的百分比}
{{j}日期('M')}
{%endfor%}

这是因为twig从1970年1月开始将j视为秒数(所以总是1月)

来自twig文档:

日期筛选器接受字符串(必须采用 strotime函数)、DateTime实例或DateInterval 实例

这应该起作用:

{% for j in range(1, 12) %}
    <option>{{ date('2012-' ~ j ~ '-01') |date('M') }}</option>
{% endfor %}
{j在(1,12)%范围内的百分比}
{{date('2012-'~j~'-01')|date('M')}
{%endfor%}

塞浦路斯人给出的解决方案给了我以下错误

函数“date”不存在

所以我把代码改成了

{% for j in 1..12 %}
    <option>{{ j |date('2012-' ~ j ~ '-01') |date('M') }}</option>
{% endfor %}
{1..12%中j的%
{j|date('2012-'~j~'-01')|date('M')}
{%endfor%}
这对我很有用。。。。为我感谢塞浦路斯人

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

工作正常。

变量
j
)太好了。.字符串需要用括号括起来,否则将显示
2012-1Jan
2012-12Jan
,因为过滤器只应用于
'-01'
,然后结果
'Jan'
将附加到
'2012-'~j
。因此,该选项的内容应该是
{('2012-'j~'-01')|date('M')}