2013-10-15 3 views
0

Я знаю, что вы можете сделать это вручную, но это не главное. Мне нужно прочь поставить сегодняшнюю дату в мой запрос mongoDB и заставить ее работать.На сегодняшний день дата в массиве

От руки нижеследующие работы отлично.

$cursor = $collection->find(array("date"=> array('$gt' => '01/10/2013'))); 

однако, когда я использую следующие

$date = date('d/m/Y'); 
$cursor = $collection->find(array("date"=> array('$gt' => '$date'))); 

Это не работает

Я попытался

$cursor = $collection->find(array("date"=> array('$gt' => $date))); 
$cursor = $collection->find(array("date"=> array('$gt' => "'".$date."'"))); 
$cursor = $collection->find(array("date"=> array('$gt' => \"$date\"))); 

ни один из вышеперечисленных не работал

+1

Попробуйте использовать 'MongoDate': http://php.net/manual/en/class.mongodate.php – WiredPrairie

ответ

0

Это Безразлично» t выглядеть правильно мне. И я не думаю, что ваши критерии «01/10/2013 »работают так, как вы ожидали.

Как хранится поле «дата»? Если он хранится в качестве поля даты MongoDB, тогда вы должны создать объект MongoDate и использовать его в своем поиске.

<?php 
$insertDate = new MongoDate(strtotime("October 2nd 2013")); 
$collection->save(array("date" => $insertDate)); 

$date = new MongoDate(strtotime("October 1st 2013")); 

$collection->find(array("date" => array('$gt' => $date))); 

?> 

Смотрите также http://php.net/mongodate

+0

Также обратите внимание, что вы не должны иметь одиночные кавычки PHP переменные , см. http://us2.php.net/language.types.string – bjori

Смежные вопросы