显示即将到来的活动,包括当前正在进行

时间:2016-07-05 17:22:24

标签: php mysql cakephp cakephp-3.0

我列event_starting_time&的插槽event_ending_time2016-06-17 23:00存储日期时间格式的开始和结束事件。

因此,在仪表板中,我需要显示接下来要发生的所有事件以及正在进行的事件。

假设当前时间是7月5日晚上10点10分。假设我的event_starting_time2016-07-05 22:30(晚上10点30分),event_ending_time2016-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解决方案。

3 个答案:

答案 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)