Сравнение Mysql Datetime с Twig Date () - PullRequest
       48

Сравнение Mysql Datetime с Twig Date ()

1 голос
/ 06 августа 2020

У меня есть переменные с именами setting.graduate_start и setting.graduate_end. Оба имеют формат MySQL DATETIME, например 2020-08-05 11:55:00. Все, что я хочу, это отобразить меню, если сегодня между setting.graduate_start и setting.graduate_end.

Итак, я написал такой код:

 {% if date(setting.graduate_start) > date() and date(setting.graduate_end) < date()%}
      <li><a href="/graduation">Graduation</a></li>
 {% endif %}

setting.graduate_start - это 2020-08-05 11:55:00, а setting.graduate_end - 2020-08-10 12:00:00, поэтому, когда сегодня 2020-08-06, элемент списка должен был отображаться, но его не было.

Как можно исправить?

1 Ответ

1 голос
/ 06 августа 2020

date(), в Twig, - это фильтр для форматирования даты , только он ничего не делает .

Если вам нужна текущая дата, вам нужно будет использовать 'now' | date(), но это все равно не даст ожидаемого формата.

Но, как указано в документации:

Спецификатор формата такой же, как поддерживается date , за исключением случаев, когда отфильтрованные данные имеют тип DateInterval , когда вместо этого формат должен соответствовать DateInterval :: format .

Источник: https://twig.symfony.com/doc/3.x/filters/date.html#date

Итак, со всем этим вместе:

{% if 'now' | date('Y-m-d H:i:s') > setting.graduate_start | date('Y-m-d H:i:s') and 'now' | date('Y-m-d H:i:s') < setting.graduate_end | date('Y-m-d H:i:s')  %}
  <li><a href="/graduation">Graduation</a></li>
{% endif %}

Отображает вашу ссылку как надо .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...