Laravel8 Blade上の記述で"〇日前"と表示する


Blade上の記述で、DBから取得した"Y-m-d H:i:s"フォーマットの日時が何日前かを表示する

コード

           <p>
              @php
                 $var = \Carbon\Carbon::parse(年月日)->diffInDays(\Carbon\Carbon::now())
              @endphp
              @switch( $var )
                 @case(0)
                     今日
                     @break
                 @case(1)
                     昨日
                     @break
                 @default
                     {{ $var }}日前
              @endswitch
           </p>

説明

PHPのDateTimeを拡張したパッケージの日付ライブラリ「Carbon」を使います。

$var = \Carbon\Carbon::parse(年月日)->diffInDays(\Carbon\Carbon::now())

Carbonライブラリのparse()を使って、年月日の文字列からインスタンスを作成します。
そこからdiffInDays()を使って現在の日付との差を出します。

    @switch( $var )
        @case(0)
            今日
            @break
        @case(1)
            昨日
            @break
        @default
            {{ $var }}日前
    @endswitch

あとは、1日前なら「今日」、2日前なら「昨日」、それ以降なら「〇日前」と表記するようにします。

最後に

こうした方が良いや、間違っている箇所があれば教えてください。