![](/img/trans.png)
[英]PHP Select database rows from current month and display them with foreach()
[英]Laravel foreach month start from current month
我有一些具有日期字段的數據。 我想顯示從當月數據開始的數據...
我從當月開始獲得第一條記錄。 但下個月又是從一月開始。 我想要像當前月份 + 1 然后當前月份 + 2 等等的記錄
@foreach($leave_manages as $holiday)
<tr>
<td class="danger">{{$holiday->date->format('F')}}</td>
<td class="warning">{{$holiday->date->format('d-m-Y')}}</td>
<td class="danger">{{$holiday->holiday}}</td>
<td class="info">{{$holiday->date->format('l')}}</td>
</tr>
@endforeach
預期結果:三月、四月、五月、六月、......、二月。
實際結果:三月,一月,二月..........,十二月
由於不知道數據庫的全部內容,因此不能完全確定這就是您要查找的內容。
假設 leave_manages 表包含所有月份,您可以使用本機 eloquent 查詢來獲取結果
$leave_manages = Leave_manage::whereDate('holiday', '>', \Carbon\Carbon::createFromDate(date('Y'), 1, 1))
->whereDate('holiday', '<', now())
->orderBy('holiday', 'acs')
->get();
$leave_manages->concact(Leave_manage::whereDate('holiday', '>', now())
->whereDate('holiday', '<', \Carbon\Carbon::createFromDate(date('Y'), 12, 31))
->orderBy('holiday', 'acs')
->get());
Laravel 提供了內置函數來使用日期函數獲取記錄。 下面的代碼將獲取當前年份中從最新到舊的記錄。 用戶這個
$leave_manages = $leave_manages = Leave_manage::whereYear('created_at', date('Y'))->orderBy('created_at', 'desc')->get();;
$from = Carbon::now()->toDateTimeString();
$to = Carbon::now()->subMonth(11)->toDateTimeString();
$data = Leave_manage::where('created_at', '>=', $to)->where('created_at', '<=', $from)
->select(DB::raw("DATE_FORMAT(created_at, '%m') as login_month , DATE_FORMAT(created_at, '%Y') as login_year"))
->groupBy('login_month')
->groupBy('login_year')
->orderBy('login_year')
->orderBy('login_month')
->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.