Retrive all rows from last month (Laravel + Eloquent) Retrive all rows from last month (Laravel + Eloquent) laravel laravel

Retrive all rows from last month (Laravel + Eloquent)


More clear solution for your problem:

$revenueMonth = Callback::whereMonth(    'created_at', '=', Carbon::now()->subMonth()->month);


Try this solutions:

$revenueMonth = Callback::where(    'created_at', '>=', Carbon::now()->subDays(30)->toDateTimeString());

You get all Callback for last 30 days.

$revenueMonth = Callback::where(    'created_at', '>=', Carbon::now()->firstOfMonth()->toDateTimeString());

Get for current month.

$revenueMonth = Callback::where(    'created_at', '>=', Carbon::now()->startOfMonth()->subMonth()->toDateString());

Get for start last month.

UPDATED

$revenueMonth = Callback::where(    'created_at', '>=', Carbon::now()->subMonth()->toDateTimeString());

This is what are you looking for :)

Hope it will help you:)


None of the answers get's me to where I'm looking to go :(.

I have a solution but I think it's ugly and hoped it could be made more clean

$fromDate = Carbon::now()->subMonth()->startOfMonth()->toDateString();$tillDate = Carbon::now()->subMonth()->endOfMonth()->toDateString();$revenueLastMonth = Callback::whereBetween(DB::raw('date(created_at)'), [$fromDate, $tillDate])->get();

This will give my the result I'm looking for, here is my records:

2017-09-07 09:46:432017-09-07 09:46:432017-09-07 09:46:432017-09-02 09:46:432017-08-07 09:46:43

And I want it to return ONLY what records is made in August 2017 (2017-08-07 09:46:43)