Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 按当前日期筛选帖子,然后按限制筛选循环_Date_Jekyll_Liquid - Fatal编程技术网

Date 按当前日期筛选帖子,然后按限制筛选循环

Date 按当前日期筛选帖子,然后按限制筛选循环,date,jekyll,liquid,Date,Jekyll,Liquid,我只想在主页上显示即将到来的事件,然后限制为三个。我能够循环处理所有事件,但我不知道如何设置过滤器 我最初设置了这个,但意识到循环在我设置的限制3处停止: {% capture now %}{{ 'now' | date: "%Y-%m-%d" }}{% endcapture %} {% for event in site.events limit:3 %} {% capture date %}{{ event.date | date: "%Y-%m-%d" }}{% endcapture

我只想在主页上显示即将到来的事件,然后限制为三个。我能够循环处理所有事件,但我不知道如何设置过滤器

我最初设置了这个,但意识到循环在我设置的限制3处停止:

{% capture now %}{{ 'now' | date: "%Y-%m-%d" }}{% endcapture %}
{% for event in site.events limit:3 %}
  {% capture date %}{{ event.date | date: "%Y-%m-%d" }}{% endcapture %}
  {% if date >= now %}
因此,我意识到我需要完全在for循环之外设置过滤器,然后通过过滤后的数组进行循环

以下是我认为会起作用的,但它不起作用:

{% capture now %}{{ 'now' | date: "%Y-%m-%d" }}{% endcapture %}
{% capture date %}{{ site.events | date: "%Y-%m-%d" }}{% endcapture %}
{% assign filtered_events = site.events | where_exp:"date", "date >= now" %}
{% for event in filtered_events limit:3 %}
<!--insert content-->
{% endfor %}
{%capture now%}{{'now'|日期:“%Y-%m-%d”}{%endcapture%}
{%capture date%}{{site.events}日期:%Y-%m-%d}{%endcapture%}
{%assign filtered_events=site.events |其中_exp:“date”,“date>=now”%}
{已筛选事件限制中的事件的百分比:3%}
{%endfor%}

我知道我可能需要使用where_exp,它返回一个经过过滤的数组,我可以循环使用这个数组,但就是不知道如何设置它。谢谢你的帮助

我认为您的
中的exp
不起作用的根本原因是
{now'| date:'%Y-%m-%d'}
和每个
事件的
日期字段的
格式不匹配。我正在观察
*.md
文件在
\u posts
中的默认日期格式是
日期:“%Y-%m-%d%H:%m”

下面是一个建议,建议对日期格式进行规范化,以便进行正确的比较

用自定义日期格式代替
now
,简化代码如何

站点时间

当前时间(运行jekyll命令时)

我能够使用
\u posts
目录中的
.md
文件在我的小型
jekyll
测试环境中运行以下内容

{% assign filtered_posts = site.posts | where_exp: "post", "post.date >= site.time" %}
{% assign sorted-posts = filtered_posts | sort: 'post_date' | reverse %}
{% for event in sorted-posts limit:3 %}
    {{ event.id | inspect }}
{% endfor %}
2016-05-19-super-short-article.md
2016-05-20-my-example-post.md
2016-05-20-super-long-article.md
2016-05-20-this-post-demonstrates-post-content-styles.md
2016-05-20-welcome-to-jekyll.md
2019-08-12-foo.md
2019-08-13-bar.md
2019-08-14-lala.md
2019-08-15-bar-opy.md
2019-08-16-bar.md
注意:添加了
反向
排序,以便您仅显示与您使用
liquid
/
jekyll
计算当前日期的时间最近的3篇文章

当我在2019年12月8日运行上面的示例代码时,
{event.id | inspect}}
的输出如下:

“/misc/2019/08/13/bar”“/misc/2019/08/14/lala” “/misc/2019/08/15/bar opy”

我的
目录中的文件发布了
目录

{% assign filtered_posts = site.posts | where_exp: "post", "post.date >= site.time" %}
{% assign sorted-posts = filtered_posts | sort: 'post_date' | reverse %}
{% for event in sorted-posts limit:3 %}
    {{ event.id | inspect }}
{% endfor %}
2016-05-19-super-short-article.md
2016-05-20-my-example-post.md
2016-05-20-super-long-article.md
2016-05-20-this-post-demonstrates-post-content-styles.md
2016-05-20-welcome-to-jekyll.md
2019-08-12-foo.md
2019-08-13-bar.md
2019-08-14-lala.md
2019-08-15-bar-opy.md
2019-08-16-bar.md

天哪,你是个圣人。我是如此接近,感谢您对此进行了微调:)对不起,回复太长,最近工作太忙了,所以没有时间看一眼。再次感谢-kclivingood@kclivingood谢谢你的客气话,很高兴我能帮助你应对挑战。