Twig日期循环每一天在一个时期

问题描述 投票:6回答:2

所以,这是我的情况,我有一个开始日期和结束日期,我希望能够在所谓的时间段内循环所有日子,以便我可以每天打印出来。当然,这只是为了理解如何做到这一点,目标是让他们进入图表。无论如何,我有以下代码(我的vars是什么):

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

我的start var是01-01-2003,我的end var是10-05-2014。这些值无关紧要,因为它们可以改变,但这就是我的格式。

这实际上打印出0 1,我完全不明白。如果有人知道如何做到这一点或如何解决我正在做的事情,那将是非常好的。谢谢。

twig period
2个回答
18
投票

你不能定义一系列确切的日期(既不是php中的range),也可以创建一个秒数范围,步长为24小时,即86400;如果你使用date('U')它会将日期字符串转换为自Unix Epoch以来的秒数(与php中的Time()相同)

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

小费 注意使用日期的格式 - 作为分隔符不是/因为它会导致完全不同的结果


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

该解决方案适用于日光节省。

© www.soinside.com 2019 - 2024. All rights reserved.