Laravel 10 Carbonでの時間比較を行う方法

こんにちは!とびろぐ管理人のとびうおです!

今回は、Laravel 10のCarbonで時間の比較を行う方法について解説します!

時間の比較の方法

まずは等しいかどうか・前かどうか・後かどうかの3パターンを見ていきましょう。

等しいかどうか(ieEqualTo)

$firstTime = Carbon::createFromTime(14, 0, 0);
$secondTime = Carbon::createFromTime(16, 0, 0);

$isSame = $firstTime->eq($secondTime); // false
echo $isSame
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

何も表示されていないので
falseということだよ!

※carbonの基本については↓↓の記事から

前かどうか(isBefore)

        $firstTime = Carbon::createFromTime(14, 0, 0);
        $secondTime = Carbon::createFromTime(16, 0, 0);

        $isBefore = $firstTime->lt($secondTime); // true
        echo $isBefore;
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

1がでているのでtrueということだよ!

後かどうか(isAfter)

       $firstTime = Carbon::createFromTime(14, 0, 0);
        $secondTime = Carbon::createFromTime(16, 0, 0);

        $isAfter = $firstTime->gt($secondTime); // false

        echo $isAfter;
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

こちらも、何も表示されていないので
falseということだよ!

時間の差分を取る

続いて、時間の差分計算を見ていきましょう!

時間単位での差分(diffInHours)

        $startTime = Carbon::createFromTime(9, 30);
        $endTime = Carbon::createFromTime(17, 45);

        $hoursDiff = $startTime->diffInHours($endTime); // 8時間の差

        echo $hoursDiff;
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

8時間の差ということだね!
ちなみに分は切り捨てられるよ

分単位での差分(diffInMinutes)

        $startTime = Carbon::createFromTime(9, 30);
        $endTime = Carbon::createFromTime(17, 45);

        $minutesDiff = $startTime->diffInMinutes($endTime); // 495分の差

        echo $minutesDiff;
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

分の方が正確かも?

その他の条件での比較

曜日による比較

特定の曜日かどうかを判断することもできます。

例えば、ある日が月曜かどうかを確認するには、

        $someDay = Carbon::create(2024, 1, 1);

        if ($someDay->isMonday()) {
            echo "この日は月曜日です。";
        }
Laravel 10 Carbonでの時間比較を行う方法

休日かどうか

休日かどうかというのも判断することができます。

        $holiday = Carbon::create(2023, 12, 25);

        if ($holiday->isWeekend()) {
            echo "この日は週末です。";
        }else{
            echo"休日ではないです。";
        }
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

土日の判定はある程度してくれるよ!
国民の祝日などのイレギュラーは、オリジナルで決める必要があるかもね

加算/減算後の比較

もちろん、加算減算後の比較も可能です。

        $appointment = Carbon::createFromTime(14, 0, 0); // 14:00の予定
        $checkTime = Carbon::createFromTime(12, 30, 0); // 12:30に確認

        if ($checkTime->gt($appointment->subHour())) {
            echo "予約時間の1時間前を過ぎています。";
        } else {
            echo "予約時間の1時間前ではありません。";
        }
Laravel 10 Carbonでの時間比較を行う方法
とびうおくん
とびうおくん

加算減算もお手のもの!

まとめ

LaravelのCarbonを使用すると、時間の比較や計算を簡単かつ柔軟に行うことができます。

Laravelで時間や日付の比較を行う場合はぜひCarbonを活用しましょう!

Illuminate\Support\Carbon | Laravel API
Carbon - A simple PHP API extension for DateTime.
Carbon - A simple PHP API extension for DateTime.
とびうお
ブログ管理人です!
swimaneというアプリをリリースしました!

コメント

タイトルとURLをコピーしました