2016-11-30 152 views
0

所以我試圖只抓取過去24小時,1周,1個月的數據。我有工作代碼,但如果我正確地得到它,這是「其他方式」。我的意思是,如果日期現在是2016年11月30日,而我將數據值設置爲2016年12月1日,那麼24小時仍然會抓取信息,但不應該。如果日期爲2016年11月30日,而我將其設置爲2016年11月28日,那麼24小時不能獲取。對我來說這聽起來像是倒退了。我希望這個解釋是可以理解的。Laravel - 獲取過去24小時,1周或1個月的數據

$getItemsOneDay = Deposit::where('steam_user_id',0)->where('status', Deposit::STATUS_ACTIVE)->where('created_at', '>', Carbon::now()->subMinutes(1440))->get(); 
$getItemsOneWeek = Deposit::where('steam_user_id',0)->where('status', Deposit::STATUS_ACTIVE)->where('created_at', '>', Carbon::now()->subMinutes(10080))->get(); 
$getItemsOneMonth = Deposit::where('steam_user_id',0)->where('status', Deposit::STATUS_ACTIVE)->where('created_at', '>', Carbon::now()->subMinutes(43200))->get(); 

回答

0

您寫了created_at > time

所以你要求laravel搜索比現在更大的數據()。所以你看看未來。

要麼你要...

  • 看着點在某一個時間點之前:created_at < time

  • 看着點某一個點之後的某個時間:created_at > time

  • 在時間間隔內查看點數:created_at > start && created_at < end

如果我找到了你,你正在尋找第三個選項。所以你需要做一些像...->where("created_at",">",Carbon::now->subDay())->where("created_at","<",Carbon::now)->...

希望我能讓你在這裏。