我列event_starting_time
&的插槽event_ending_time
以2016-06-17 23:00
存储日期时间格式的开始和结束事件。
因此,在仪表板中,我需要显示接下来要发生的所有事件以及正在进行的事件。
假设当前时间是7月5日晚上10点10分。假设我的event_starting_time
为2016-07-05 22:30
(晚上10点30分),event_ending_time
为2016-07-05 23:30
(晚上11点30分)的事件,那么我想要展示此事件在列表中。
以下是我当前的查询,该查询仅显示即将发生的查询,而不是现在实际发生的事件。
$conditions = array('event_starting_time >=' => date("Y-m-d H:i"));
$parameter = array('conditions' => $conditions);
$slots = $this->Slots->find('all', $parameter);
上面的SQL查询将是,
SELECT * from Slots where event_starting_time >= date("Y-m-d H:i");
我可以使用任何SQL或Cakephp解决方案。
答案 0 :(得分:0)
除了包含H:i之外,您应该只过滤日期为y-m-d且不准确的位置。否则,您必须每隔几秒钟检查一次事件。尝试使用更简单的日期时间来处理全局变量。
所以它变成了:
$this->Slots->find()->andWhere ('like', 'datetime', $variable);
答案 1 :(得分:0)
如果您的条件是包含正在进行的事件,那么您可以简单地测试事件的结束,即
event_ending_time > value
这将包括正在进行的事件(当前晚上11点30分,当前晚上10点40分),以及所有即将发生的事件。
答案 2 :(得分:0)
正在进行的活动
select * from event where
(event_starting_time < current) and (event_ending_time > current)