检索上个月的所有行 (Laravel + Eloquent)
Retrive all rows from last month (Laravel + Eloquent)
我正在尝试获取属于上个月的所有记录,到目前为止,我设法获取了上个月的所有记录,但到目前为止,我不确定如何只获取上个月的记录
$revenueMonth = Callback::where('created_at', '>=', Carbon::today()->startOfMonth()->subMonth())->sum('payment');
试试这个解决方案:
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->subDays(30)->toDateTimeString()
);
您将获得过去 30 天的所有回调。
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->firstOfMonth()->toDateTimeString()
);
获取当前月份。
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->startOfMonth()->subMonth()->toDateString()
);
上个月开始。
已更新
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->subMonth()->toDateTimeString()
);
这就是您要找的:)
希望对您有所帮助:)
已更新
eloquent 你的答案版本
$fromDate = Carbon::now()->subMonth()->startOfMonth()->toDateString();
$tillDate = Carbon::now()->subMonth()->endOfMonth()->toDateString();
$revenueLastMonth = Callback::whereBetween('created_at',[$fromDate,$tillDate])->get();
None 的答案让我到达了我想去的地方:(。
我有一个解决方案,但我觉得它很丑,希望它能变得更干净
$fromDate = Carbon::now()->subMonth()->startOfMonth()->toDateString();
$tillDate = Carbon::now()->subMonth()->endOfMonth()->toDateString();
$revenueLastMonth = Callback::whereBetween(DB::raw('date(created_at)'), [$fromDate, $tillDate])->get();
这会给出我正在寻找的结果,这是我的记录:
2017-09-07 09:46:43
2017-09-07 09:46:43
2017-09-07 09:46:43
2017-09-02 09:46:43
2017-08-07 09:46:43
我希望它 return 仅记录 2017 年 8 月 (2017-08-07 09:46:43)
您的问题更清晰的解决方案:
$revenueMonth = Callback::whereMonth(
'created_at', '=', Carbon::now()->subMonth()->month
);
我正在尝试获取属于上个月的所有记录,到目前为止,我设法获取了上个月的所有记录,但到目前为止,我不确定如何只获取上个月的记录
$revenueMonth = Callback::where('created_at', '>=', Carbon::today()->startOfMonth()->subMonth())->sum('payment');
试试这个解决方案:
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->subDays(30)->toDateTimeString()
);
您将获得过去 30 天的所有回调。
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->firstOfMonth()->toDateTimeString()
);
获取当前月份。
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->startOfMonth()->subMonth()->toDateString()
);
上个月开始。
已更新
$revenueMonth = Callback::where(
'created_at', '>=', Carbon::now()->subMonth()->toDateTimeString()
);
这就是您要找的:)
希望对您有所帮助:)
已更新 eloquent 你的答案版本
$fromDate = Carbon::now()->subMonth()->startOfMonth()->toDateString();
$tillDate = Carbon::now()->subMonth()->endOfMonth()->toDateString();
$revenueLastMonth = Callback::whereBetween('created_at',[$fromDate,$tillDate])->get();
None 的答案让我到达了我想去的地方:(。
我有一个解决方案,但我觉得它很丑,希望它能变得更干净
$fromDate = Carbon::now()->subMonth()->startOfMonth()->toDateString();
$tillDate = Carbon::now()->subMonth()->endOfMonth()->toDateString();
$revenueLastMonth = Callback::whereBetween(DB::raw('date(created_at)'), [$fromDate, $tillDate])->get();
这会给出我正在寻找的结果,这是我的记录:
2017-09-07 09:46:43
2017-09-07 09:46:43
2017-09-07 09:46:43
2017-09-02 09:46:43
2017-08-07 09:46:43
我希望它 return 仅记录 2017 年 8 月 (2017-08-07 09:46:43)
您的问题更清晰的解决方案:
$revenueMonth = Callback::whereMonth(
'created_at', '=', Carbon::now()->subMonth()->month
);