簡體   English   中英

Laravel 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM