2014-06-06 10 views
5

Quindi, ecco la mia situazione, ho una data di inizio e una data di fine, con Twig voglio essere in grado di scorrere tutti i giorni nel cosiddetto periodo in modo che possa stampare ogni giorno. Certo, questo è solo per capire come farlo, l'obiettivo è quello di farli entrare in un grafico. Comunque, ho il seguente codice (con quello che sono i miei Vars):Twig data loop ogni giorno in un periodo

{% set start_year = date(start) | date('d-m-Y') %} 
{% set end_year = date(end)| date('d-m-Y') %} 

{% for i in start_year..end_year %} 
    {{ i }} 
{% endfor %} 

mio start var è 01-01-2003 e la mia end VAR è 10-05-2014. I valori non contano come potrebbero cambiare, ma questo è il formato che ho.

Questo effettivamente stampa 0 1 che non capisco affatto. Se qualcuno ha un'idea su come farlo o su come sistemare quello che sto facendo, sarebbe davvero bello. Grazie.

+0

Puoi passare il numero di giorni tra 'start_year' e' end_year' in 'Twig'? Se è così, usa il filtro 'date_modify' – bartek

risposta

16

Non è possibile definire un intervallo di date esatte (né come range in php) ma è possibile creare un intervallo di secondi con un passo di un secondo di 24 ore che è 86400; se si utilizza date('U') verrà convertito data stringa secondi dalla Unix Epoch (lo stesso Time() in php)

{% set start_date = '01-06-2014' %} 
{% set end_date = '05-06-2014' %} 
{% for x in range(start_date|date('U'), end_date|date('U'), 86400) %} 
    {{ x|date('d/m/Y') }}<br> 
{% endfor %} 

Tip
Prestare attenzione il formato della data da utilizzare - come separatore non / perché porterà al risultato completamente diverso

+0

Dovrebbe essere accettato –

+1

Non funziona sempre. Attualmente, ho qualche problema con il cambio dell'ora in Canada (+1 in autunno, -1 in primavera) – Matrix818181

+0

La dose non funziona con il risparmio di luce diurna – user1529918

0
{% set pd_begdate = header_data.pd_begdate %} 
{% set pd_enddate = header_data.pd_enddate ~ ' 23:59:59' %} 
{% for key, count_item in range(pd_begdate|date('z'), pd_enddate|date('z'), 1)|slice(column_offset, column_count, 'preserve_keys') %} 
    {% set item = pd_begdate|date_modify('+'~ key ~' day') %} 
    <td class="tr5 td9"><p class="p9 ft0">{{ item|date("M") }}<br>{{ item|date("d") }}<br>{{ item|date("D") }}<br>{{ key + 1 }}</p></td> 
{% endfor %} 

Questa soluzione funziona per il risparmio di luce al giorno.

Problemi correlati