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

时间:2014-06-06 09:48:01

标签: twig period

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

{% 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。如果有人知道如何做到这一点或如何解决我正在做的事情,那将是非常好的。感谢。

3 个答案:

答案 0 :(得分:18)

你无法定义一系列确切的日期(在php中都不是range)但你可以创建一个秒数范围,步长为24小时,即86400;如果你使用date('U')它会将日期字符串转换为自Unix时代以来的秒数(与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 %}

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

答案 1 :(得分:0)

PersonID

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

答案 2 :(得分:0)

当我尝试迭代整整一年时,我在解决方案上遇到了麻烦-大约8个月后,我发现它将下降一天。

但是根据解决方案How to add n-days to twig date format within a for-loop?,我发现这可行:

{% set yearstart = "01-01-2003"|date('m-d-Y') %}
{% set eachday = "" %}
{% for i in range(0,365) %}
    {% set eachday = yearstart|date_modify("+" ~ i ~ "day")|date('m-d-y') %}
{% endfor %}