2012-09-18 11 views
6

Questo è strano. Se uso {{ j }}, ottengo tutti i 12 numeri, ma aggiungendo il filtro della data di Twig echi appena "Jan" dodici volte.Twig: per ogni mese dell'anno

Come echo in tutti i mesi dell'anno? Ho invece creato un array?

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

risposta

18

È perché il ramoscello tratta j come numero di secondi da gennaio 1970 (quindi è sempre gennaio).

Da documentazione ramoscello:

Il filtro data accetta stringhe (deve essere in un formato supportato dal la funzione strtotime), le istanze DateTime o DateInterval istanze.

Questo dovrebbe funzionare:

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

La soluzione data dalla Cipriano mi gettarono il seguente errore

La funzione "data" non esiste

Così ho cambiato codice per

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

e questo ha funzionato per me .... Grazie Cyprian