Tobilog-Selection
こんにちは!とびろぐ管理人のとびうおです!
今回は、Laravel 10のCarbonで時間の比較を行う方法について解説します!
時間の比較の方法
まずは等しいかどうか・前かどうか・後かどうかの3パターンを見ていきましょう。
等しいかどうか(ieEqualTo)
$firstTime = Carbon::createFromTime(14, 0, 0);
$secondTime = Carbon::createFromTime(16, 0, 0);
$isSame = $firstTime->eq($secondTime); // false
echo $isSame
とびうおくん
何も表示されていないので
falseということだよ!
※carbonの基本については↓↓の記事から
前かどうか(isBefore)
$firstTime = Carbon::createFromTime(14, 0, 0);
$secondTime = Carbon::createFromTime(16, 0, 0);
$isBefore = $firstTime->lt($secondTime); // true
echo $isBefore;
とびうおくん
1がでているのでtrueということだよ!
後かどうか(isAfter)
$firstTime = Carbon::createFromTime(14, 0, 0);
$secondTime = Carbon::createFromTime(16, 0, 0);
$isAfter = $firstTime->gt($secondTime); // false
echo $isAfter;
とびうおくん
こちらも、何も表示されていないので
falseということだよ!
時間の差分を取る
続いて、時間の差分計算を見ていきましょう!
時間単位での差分(diffInHours)
$startTime = Carbon::createFromTime(9, 30);
$endTime = Carbon::createFromTime(17, 45);
$hoursDiff = $startTime->diffInHours($endTime); // 8時間の差
echo $hoursDiff;
とびうおくん
8時間の差ということだね!
ちなみに分は切り捨てられるよ
分単位での差分(diffInMinutes)
$startTime = Carbon::createFromTime(9, 30);
$endTime = Carbon::createFromTime(17, 45);
$minutesDiff = $startTime->diffInMinutes($endTime); // 495分の差
echo $minutesDiff;
とびうおくん
分の方が正確かも?
その他の条件での比較
曜日による比較
特定の曜日かどうかを判断することもできます。
例えば、ある日が月曜かどうかを確認するには、
$someDay = Carbon::create(2024, 1, 1);
if ($someDay->isMonday()) {
echo "この日は月曜日です。";
}
休日かどうか
休日かどうかというのも判断することができます。
$holiday = Carbon::create(2023, 12, 25);
if ($holiday->isWeekend()) {
echo "この日は週末です。";
}else{
echo"休日ではないです。";
}
とびうおくん
土日の判定はある程度してくれるよ!
国民の祝日などのイレギュラーは、オリジナルで決める必要があるかもね
加算/減算後の比較
もちろん、加算減算後の比較も可能です。
$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のCarbonを使用すると、時間の比較や計算を簡単かつ柔軟に行うことができます。
Laravelで時間や日付の比較を行う場合はぜひCarbonを活用しましょう!
Illuminate\Support\Carbon | Laravel API
Carbon - A simple PHP API extension for DateTime.
Carbon - A simple PHP API extension for DateTime.
コメント