2012-09-18 32 views
6

Esto es extraño. Si uso {{ j }}, obtengo los 12 números, pero al agregar el filtro de fecha de Twig solo aparece "Jan" doce veces.Ramita: para cada mes del año

¿Cómo hago eco en todos los meses del año? ¿Tengo un crear una matriz en su lugar?

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

Respuesta

18

Es porque trata ramita j como el número de segundos desde enero de 1970 (por lo que es siempre de enero).

De la documentación ramita:

El filtro de fecha acepta cadenas (que debe estar en un formato compatible con la función strtotime), las instancias de fecha y hora, o DateInterval casos.

Esto debería funcionar:

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

La solución dada por Cipriano me arrojaron el siguiente error

La función "fecha" no existe

Así que cambió código a

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

y esto funcionó para mí .... Gracias Cyprian

Cuestiones relacionadas