2014-06-06 23 views
5

Yani, benim durumum, bir başlangıç ​​tarihi ve bir bitiş tarihi var, Twig ile, baskıya girebilmem için sözümdeki tüm günlerde döngü yapabilmek istiyorum. her gün. Tabii ki, bu sadece nasıl yapılacağını anlamak için, hedef onları bir şema haline getirmektir. Neyse, (benim vars ne ile) aşağıdaki kodu vardır:Twig tarih döngüsü her gün

{% 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 %} 

Benim start var 01-01-2003 ve benim end var 10-05-2014 olduğunu. Değerler değişebileceği kadar önemli değil, ama sahip olduğum biçim bu.

Bu, aslında hiç anlamadığım 0 1'u yazdırıyor. Herhangi birinin nasıl yapılacağı ya da ne yaptığımın nasıl düzeltileceği hakkında bir fikri varsa, bu gerçekten güzel olurdu. Teşekkürler.

+0

“start_year” ile “end_year” arasındaki gün sayısını “Twig” ye geçirebilir misiniz? Eğer öyleyse, 'date_modify' filtresini kullanın – bartek

cevap

16

Belirli bir tarih aralığı tanımlayamazsınız (php olarak range olarak değil), ancak 24 saat saniye olan 86400 olan bir dizi saniye oluşturabilirsiniz; Eğer (php Time() aynı) Unix Zaman beri saniyeye tarih dizesi dönüştürecektir date('U') kullanırsanız

{% 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 %} 

İpucu
dikkat Tarih biçiminin kullanmak - olarak ayırıcı değil / tamamen farklı sonuca yol açacaktır çünkü

+0

Kabul edilmelidir –

+1

Her zaman işe yaramıyor. Currenlty, Kanada'da saat değişikliği ile ilgili bir sorunum var (sonbaharda +1, ilkbaharda -1) – Matrix818181

+0

Doz gün ışığı tasarrufu ile çalışmaz – 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 %} 

Bu çözüm gün ışığı tasarrufu için çalışır.