start_on参数在表达式引擎中没有给出正确的结果


start_on parameter is not giving correct results in expresionengine

我有一个管理事件的通道,当我想实现一些常见操作(例如显示过去的事件)时,我遇到了问题。如果我想查看当前和未来的事件,我认为我可以通过以下方式获取它:

{exp:channel:entries channel="events" show_future_entries="yes" show_expired="no" orderby="{date}" sort="

asc" dynamic="no" start_on="}

其中 $entry_date 的格式为 YYYY-MM-DD HH:MM (例如: 2011-08-02 11:00)

它应按以下顺序显示事件:

2012-08-02 11:00
2012-09-02 11:00
2012-10-02 11:00
2012-11-02 11:00

但它在 2012-08-02 11:00 显示它们时不包括事件(似乎 EE 所做的比较是>,而不是>=)

还有过去的事件(已经标记为已过期)我按年份组织和显示它们:

{exp:channel:entries channel="events" show_future_entries="no" show_expired="yes" orderby="{date}" sort="

desc" dynamic="no" year=" start_on="}

假设我过去的事件是:

2011-08-02 11:00
2011-09-02 11:00
2011-10-02 11:00
2011-11-02 11:00

和 $entry_date = 2011-10-02 11:00

它应该显示如下内容:

2011-10-02 11:00
2011-09-02 11:00
2011-08-02 11:00

并以不正确的顺序显示它。

事实上,问题是:

  1. 对于当前和将来的事件,事件 = start_on 参数不包含在结果中。
  2. 对于过去的事件,它以错误的顺序显示事件(最早的事件是显示的第一个事件)。

有人可以告诉我我的代码是否有问题吗?

使用的是EE 2.4.0,并且在我尝试执行这些操作的模板中的输入中启用了php。

我在这里看到的一些东西。

orderby="{date}"实际上应该orderby="date"(或者可以是 完全省略,因为日期/entry_date是默认的排序)。

您对即将举行的活动的问题可能是您生成的方式 您的$entry_date变量。你能告诉我这是如何创建的吗 完全?您是否在某处回响以确保它确实如此 你以为它是什么?您可能会遇到本地化问题 EE 和您的服务器之间的差异。如果您确实有条目 与你在start_on中的内容完全相同的输入日期,它 应该出现。尝试手动将日期放入start_on以进行故障排除。

对于过去的事件,您应该使用 stop_before ,而不是start_on 。这两个参数不注意您的sort参数 - 它们始终基于时间顺序。