変ですね。を使用する{{ j }}
と、12 個すべての数字が取得されますが、Twig 日付フィルターを追加すると、「Jan」が 12 回エコーされます。
1 年のすべての月をエコーアウトするにはどうすればよいですか? 代わりに配列を作成する必要がありますか?
<select>
{% for j in range(1, 12) %}
<option>{{ j|date('M') }}</option>
{% endfor %}
</select>
変ですね。を使用する{{ j }}
と、12 個すべての数字が取得されますが、Twig 日付フィルターを追加すると、「Jan」が 12 回エコーされます。
1 年のすべての月をエコーアウトするにはどうすればよいですか? 代わりに配列を作成する必要がありますか?
<select>
{% for j in range(1, 12) %}
<option>{{ j|date('M') }}</option>
{% endfor %}
</select>
これは、twig が j を 1970 年 1 月からの秒数として扱うためです (つまり、常に 1 月です)。
小枝のドキュメントから:
日付フィルターは、文字列 (strtotime 関数でサポートされている形式である必要があります)、DateTime インスタンス、または DateInterval インスタンスを受け入れます。
これはうまくいくはずです:
{% for j in range(1, 12) %}
<option>{{ date('2012-' ~ j ~ '-01') |date('M') }}</option>
{% endfor %}
Cyprian によって提供された解決策は、次のエラーをスローしました
関数「日付」は存在しません
だから私はコードを
{% for j in 1..12 %}
<option>{{ j |date('2012-' ~ j ~ '-01') |date('M') }}</option>
{% endfor %}
これは私にとってはうまくいきました.... Cyprianに感謝します