如何按日期条件过滤列表?

时间:2017-04-15 01:34:15

标签: jekyll liquid

我试图通过查找结束日期小于或等于今天日期的所有项目来过滤我的列表。

我知道在Liquid中我可以使用where:过滤来查找符合条件的项目。例如,如果我想获得今天会议的清单,我可以这样做:

{% assign todays_conferences = (site.conferences | where: 'date_end', today) %}

但是,当我尝试召开即将召开的会议时,我也无法做到这一点:

{% assign upcoming_conferences = (site.conferences | where: 'date_end', ??? | sort: 'date_start') %}

这是因为我不希望一对一地匹配一个值,但我试图根据日期比较来查找项目。我已经搜遍了所有,无法找到方法。

如何以这种方式过滤列表?我希望我不必依次循环并在每一行上做一个if语句。

1 个答案:

答案 0 :(得分:7)

来自Jekyll 3.2,您可以使用where而不是使用where_exp,并使用表达式为true的对象过滤数组:

  {% assign upcoming_conferences = (site.conferences | where_exp: 'date_end', 'date_end < site.time' | sort: 'date_start') %}

您可以将site.time替换为任何其他有效日期。