交响乐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