Carbon とは?
PHPの日付処理用ライブラリです。
詳しくは公式サイトを翻訳しながらご確認ください。
今回の記事では、導入方法とよく使う処理をまとめました。
公式サイト https://carbon.nesbot.com/
Carbonをインストール
・Carbonはcomposerを使用してインストールします。
$ composer require nesbot/carbon
※ Laravelを使用している場合は、標準でインストールされています。
※ またcomposerを使用せず公式サイトから直接ダウンロードも可能
インストール後
インストールを行うと「Carbon.php」ファイルが作成される。
CarbonクラスはDateTimeクラスを継承している。
// Carbon.php <?php namespace Carbon; class Carbon extends \DateTime { // code。。。。 }
Carbon使用時はネームスペースをインポートする。
namespace XXX; use Carbon\Carbon; class XXX { // code。。。。 }
取得処理
現在日時の取得
$dt = Carbon::now();
現在日時の取得(タイムゾーン有)
$td = Carbon::now(new DateTimeZone('Asia/Tokyo')); または、 $td = Carbon::now('Asia/Tokyo')
当日の取得
$td = Carbon::today('Asia/Tokyo');
明日の取得
$td = Carbon::tomorrow('Asia/Tokyo');
昨日の取得
$td = Carbon::yesterday('Asia/Tokyo');
文字列から日付型に変換
parse関数を使用する。
$dt = Carbon::parse("2019-01-07");
取得した日付から使用範囲の指定
$td = Carbon::today('Asia/Tokyo'); // 年 $dt->year; // 月 $dt->month; // 日 $dt->day; // 時 $dt->hour; // 分 $dt->minute; // 秒 $dt->second; // 月の日数 $dt->daysInMonth
フォーマット変換処理
format関数を使用する。
表示値とパラメータの関係表
表示値 | パラメータ |
---|---|
年 | Y |
月 | m |
日 | d |
時 | H |
分 | i |
秒 | s |
使用例
$td = Carbon::today('Asia/Tokyo'); // 年-月-日 $dt->toDateString(); //または、 $dt->format('Y-m-d'); // 時:分:秒 $dt->toTimeString(); //または、 $dt->format('H:i:s');
日付変更処理
日付の足し算・引き算
$td = Carbon::today('Asia/Tokyo'); /* 足し算 */ // 1日後 $dt->addDay(1); // 1ヶ月後 $dt->addMonth(1); // 1年後 $dt->addYear(1); /* 引き算 */ // 1日前 $dt->subDay(1); // 1ヶ月前 $dt->subMonth(1); // 1年前 $dt->subYear(1);
比較処理
// 等しい場合true $first->equalTo($second); // 等しくない場合true $first->notEqualTo($second); // $firstが$secondより後の場合true $first->greaterThan($second); // $firstが$second以降の場合true $first->greaterThanOrEqualTo($second); // $firstが$secondより前の場合true $first->lessThan($second); // $firstが$second以前の場合true $first->lessThanOrEqualTo($second);
実用例
対象日付が当日より未来かチェック
// 当日 $now_date = Carbon::now('Asia/Tokyo'); // 対象日付 $target_date = Carbon::parse("2019-01-07"); // 対象日付が当日より未来の場合、true if ($target_date->greaterThan($now_date)) { // code。。。 }