Laravelでは、日付や時間の操作にCarbonという便利なライブラリが標準で組み込まれています。この記事では、Carbonを活用した日付の取得・加減算・比較・フォーマットなど、よく使う処理を実例つきで紹介します。
Carbonとは?
Carbonは、PHPのDateTimeクラスを拡張した日付操作ライブラリです。Laravelでは標準でインポートされており、特別な設定をせずに使用できます。
use Carbon\Carbon;
これでCarbonクラスのメソッドが使えるようになります。
現在の日付・時刻を取得する
現在の日時を取得するにはCarbon::now()
を使います。
$now = Carbon::now();
echo $now; // 2025-05-27 14:30:00
日付だけ取得したい場合はtoday()
、時刻だけならnow()->toTimeString()
が便利です。
echo Carbon::today(); // 2025-05-27
echo Carbon::now()->toTimeString(); // 14:30:00
日付の加算・減算(add / sub)
Carbonでは簡単に日付の加算・減算が可能です。
$nextWeek = Carbon::now()->addWeek(); // 1週間後
$yesterday = Carbon::now()->subDay(); // 1日前
分・時間・月・年単位での操作も同様にできます。
Carbon::now()->addMinutes(30);
Carbon::now()->addMonths(2);
日付の比較(before/afterなど)
Carbon同士で簡単に日付の比較ができます。
$start = Carbon::parse('2025-01-01');
$end = Carbon::parse('2025-12-31');
if ($start->lt($end)) {
echo '開始日は終了日より前です';
}
主な比較メソッド:
lt()
:less than(より前)gt()
:greater than(より後)eq()
:equal(等しい)ne()
:not equal(異なる)
日付のフォーマット方法(format)
表示形式を整えるには、format()
メソッドを使います。
$date = Carbon::now();
echo $date->format('Y年m月d日 H:i'); // 2025年05月27日 14:30
日付だけ表示したい場合や、月日だけ取り出したい場合にも対応できます。
$date->format('Y-m-d'); // 2025-05-27
$date->format('m/d'); // 05/27
日本語で曜日を表示したい場合
曜日を日本語で表示するには、format('w')
で取得した数値を曜日配列に変換します。
$weekdays = ['日', '月', '火', '水', '木', '金', '土'];
$weekdayIndex = Carbon::now()->format('w');
echo $weekdays[$weekdayIndex]; // 例:火
日付をパース(文字列 → Carbonオブジェクト)
日付の文字列をCarbonとして扱いたい場合はparse()
を使います。
$birthday = Carbon::parse('2000-01-01');
echo $birthday->age; // 年齢を自動計算
diffIn系メソッドで差分を取得する
2つの日付の差分を取得するにはdiffInDays()
やdiffInHours()
が便利です。
$a = Carbon::parse('2025-05-01');
$b = Carbon::parse('2025-05-27');
echo $a->diffInDays($b); // 26
まとめ
CarbonはLaravelにおける日付処理を非常に直感的にしてくれる強力なツールです。now()
による現在日時の取得から、addDays()
やdiffInDays()
などの演算・比較、format()
による整形まで、多彩な機能で日付操作を簡単に