我正在使用twig php模板制作网站。
我想展示11月发表的文章。 到目前为止,我有这个:
{% if date(article.published) == date('november') %}
{% for article in articles %}
<li> <a href="/articles/{{ article.slug }}">{{ article.title }}</a> </li>
{% endfor %}
{% endif %}
(提前致谢)
答案 0 :(得分:2)
你应该在循环内使用IF
子句,而不是在它之外:
{% for article in articles %}
{% if date(article.published) == date('november') %}
<li> <a href="/articles/{{ article.slug }}">{{ article.title }}</a> </li>
{% endif %}
{% endfor %}
答案 1 :(得分:1)
您正在寻找:
{%
if article.published|date('U') > '2014-11-01'|date('U')
and article.published|date('U') < '2014-12-01'|date('U')
%}
date('U')
过滤器会将日期转换为时间戳格式(自1970-01-01以来的秒数),因此我们可以从此处进行一些日期比较并过滤2014-11-01和2014之间的所有日期-11-31 23:59:59。
正如@Giedrius指出的那样,你应该把if放在循环中。
这变为:
{% for article in articles %}
{%
if article.published|date('U') > '2014-11-01'|date('U')
and article.published|date('U') < '2014-12-01'|date('U')
%}
<li> <a href="/articles/{{ article.slug }}">{{ article.title }}</a> </li>
{% endif %}
{% endfor %}