交响乐2。 Twig:日期变量更改时逻辑功能不起作用
Symfony2. Twig: Doesn't work logic function when date variable changes
{% set event_date = event.schedule|date('d-m-y') %}
{% set nowdate = "now"|date('d-m-y') %}
{% if event_date < nowdate %}
view some 1
{% else %}
view some 2
{% endif %}
如果更改 event_date 大于或小于 nowdate,将得到一个结果:查看一些 2 。
为什么不起作用?
您正在比较字符串。 d-m-y
不是用于比较日期的可用格式。尝试 Y-m-d
,其中各部分按重要性排序。
更好的是,您可以比较两个 \DateTime
对象而不是字符串。我假设 event.schedule
是一个,你只需要将当前日期的一个传递给 twig。
您处于字符串比较的情况。为了更好地解决这个问题,使用 U 过滤器如下:
{% set event_date = event.schedule|date('U') %}
{% set nowdate = "now"|date('U') %}
{% if event_date < nowdate %}
view some 1
{% else %}
view some 2
{% endif %}
{{ event_date }}
现场测试fiddle。
希望对您有所帮助
除了专门设计用于比较日期的 date filter, Twig defines a date() function。
{% set event_date = event.schedule|date('d-m-y') %}
{% set nowdate = "now"|date('d-m-y') %}
{% if event_date < nowdate %}
view some 1
{% else %}
view some 2
{% endif %}
如果更改 event_date 大于或小于 nowdate,将得到一个结果:查看一些 2 。 为什么不起作用?
您正在比较字符串。 d-m-y
不是用于比较日期的可用格式。尝试 Y-m-d
,其中各部分按重要性排序。
更好的是,您可以比较两个 \DateTime
对象而不是字符串。我假设 event.schedule
是一个,你只需要将当前日期的一个传递给 twig。
您处于字符串比较的情况。为了更好地解决这个问题,使用 U 过滤器如下:
{% set event_date = event.schedule|date('U') %}
{% set nowdate = "now"|date('U') %}
{% if event_date < nowdate %}
view some 1
{% else %}
view some 2
{% endif %}
{{ event_date }}
现场测试fiddle。
希望对您有所帮助
除了专门设计用于比较日期的 date filter, Twig defines a date() function。