MongoDB / PHP查询 - 如果当前时间/日期在计划中

时间:2012-06-25 21:32:28

标签: php mongodb datetime

我有条目存储事件的开始和结束时间。我正在尝试使用MongoDate查询查找当前查询时发生的所有事件。

这里回答了同样的问题,但是对于MongoDB而不是MySQL: PHP / MySQL query - if current time/date is in schedule

到目前为止,我所能找到的只是对MongoDate的反向查询:

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));

// find dates between 1/15/2010 and 1/30/2010
$collection->find(array("ts" => array('$gt' => $start, '$lte' => $end)));

1 个答案:

答案 0 :(得分:0)

实际上很简单:不是检查范围,只需检查是否相等:

$now = new MongoDate();
$collection->find(array('ts' => $now));

...因为您看起来不会将事件开始和结束信息存储在不同的属性中。如果您真的想要,请使用两个属性:'t_start'和't_end',并且仅在事件实际完成时才填充后者。应用此方案时,查询会变得更复杂:

$collection->find(array(
  't_end'   => array('$exists' => false)
));