Larvel's Eloquent поддерживает объекты Carbon/DateTime вместо объектов MongoDate, которые будут преобразованы изнутри в объекты MongoDate при сохранении в базе данных. Вы можете использовать этот пакет обработки даты в laravel под названием Carbon с вашими запросами.
Например, если вы хотите запросить записи из данных пользователей, где поле created_at
даты и времени MongoDB является большим, что данная дата, скажем, записи с сегодняшнего дня, использовать Carbon в startOfDay()
недвижимости:
$dt = Carbon::now()->startOfDay();
$users = User::where('created_at', '>', $dt)->get();
Аналогично , чтобы сделать диапазон данных запроса, т.е. запрос для записей между определенным месяцем, скажем, октябрь 2015 года, используется метод whereBetween
:
$users = User::whereBetween(
'created_at', array(
Carbon::createFromDate(2015, 10, 1),
Carbon::createFromDate(2015, 10, 31)
)
)->get();
Другим подходом было бы использовать Eloquent, который позволяет работать с объектами Carbon/DateTime вместо объектов MongoDate. Пример вдохновленный от docs:
<?php
use Jenssegers\Mongodb\Model as Eloquent;
class User extends Eloquent {
use SoftDeletingTrait;
/**
* Collection for Model
*
* @var String
*/
protected $collection = "users";
/**
* Connection for model
*
* @var type
*/
protected $connection = 'mongodb';
protected $dates = array('created_at');
}
, который позволяет выполнять запросы, как:
$users = User::where('created_at', '>', new DateTime('-1 day'))->get();
Или изначально используя объекты MongoDate, вы можете попробовать
$start = new MongoDate(strtotime("2015-10-01 00:00:00"));
$stop = new MongoDate(strtotime("2015-10-31 00:00:00"));
$users = DB::collection('users')->whereBetween('created_at', array($start, $stop))->get();
Вы должны создать новую дату, используя новую дату Date ('Y-m-d'), а затем запросить его –
@ Suresh-ISM вы можете уточнить. – Tuhin
var date1 = новая дата («Y-m-d»); test.find ({created: {$ gt: new Date (date)}}) или test.find ({created: {$ gt: new Date ("Ymd")}}) –