doqs8936 2015-10-27 09:09
浏览 251
已采纳

laravel 5.1 mongodb(jenssegers / laravel-mongodb)查询日期不能正常工作

I'm using laravel 5.1 with mongodb package (jenssegers/laravel-mongodb) to build a leads manager system. I'm trying to get the count of leads from deterrent times but the return answer is wrong - for example if for $today_count I keep get the same as total count (I know it wrong, I can see by the dates in the collection) my code looks like that:

public function getCount()
{
    $client_id = \Auth::client()->id;
    $today = Carbon::now()->startOfDay();
    $today->setTimezone(Client::getTimezone())->toDateTimeString();
    $last_week = $today->subWeek();
    $today_count = Lead::where('client_id',$client_id)->where('created_at','>',$today)->get()->count();
    $last_week_count = Lead::where('created_at',$last_week)->where('client_id',$client_id)->get()->count();
    $forever = Lead::where('client_id',$client_id)->get()->count();
    return ['today' => $today_count, 'last_week' => $last_week_count, 'forever' => $forever];
}

What should I do to get the correct answer?

  • 写回答

1条回答 默认 最新

  • doumu5662 2015-11-04 11:33
    关注

    Solved!

    i found what the problem was, MongoDB date format is different then MySQL, before querying dates in MongoDB you shold convert in to mongo date formt via PHP object call MongoDate:http://php.net/manual/en/class.mongodate.php

    for example $today should look like this:

    $today = new \MongoDate(Carbon::now()->startOfDay()->timestamp);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?