【Laravel】日付の扱い方まとめ|Carbonを使った日付演算とフォーマット方法

【Laravel】日付の扱い方まとめ|Carbonを使った日付演算とフォーマット方法 Laravel

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()による整形まで、多彩な機能で日付操作を簡単に