2014-12-03 61 views
0

我正在使用樹枝的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

你能不能添加一個'WHERE'條件在你的數據庫查詢爲了過濾文章而不是使用Twig來過濾文章? – 2014-12-05 23:11:50

回答

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 %} 
2

您應該使用IF子句中的循環,而不是外界的那樣:

{% for article in articles %} 

    {% if date(article.published) == date('november') %} 

     <li> <a href="/articles/{{ article.slug }}">{{ article.title }}</a> </li> 

    {% endif %} 

{% endfor %}