6

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

我如何回显一年中的所有月份?我有一个创建数组吗?

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

3 回答 3

21

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

从树枝文档:

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

这应该有效:

{% for j in range(1, 12) %}
    <option>{{ date('2012-' ~ j ~ '-01') |date('M') }}</option>
{% endfor %}
于 2012-09-18T12:48:24.543 回答
3

Cyprian给出的解决方案向我抛出了以下错误

函数“日期”不存在

所以我将代码更改为

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

这对我有用....谢谢Cyprian

于 2013-09-27T05:27:58.157 回答
0

为了我:

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

工作正常。

于 2020-12-22T17:38:32.120 回答