所以,在我的情况下,我有一个开始日期和一个结束日期,我希望能够在所谓的时间段内完成所有日子的循环,这样我就可以每天打印出来。当然,这仅仅是为了理解如何去做,目标是让他们进入图表。无论如何,我有以下代码(我的代码是什么):
{% 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
。如果有人知道如何做到这一点或如何解决我正在做的事情,那将是非常好的。感谢。
答案 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 %}