Carbonを利用してPHPで日付操作する
PHPで日付系の操作をするときに標準関数のdateとかstrtotimeを使うんだけど、ちょっと面倒なのです。
そこでCarbon! Larabelにもインクルードされていてcomposerでお手軽導入できるCarbonです!
briannesbitt/Carbon · GitHub – A simple API extension for DateTime with PHP 5.3+
開発者のBrian Nesbittさんナイス!
たとえば、2つの時刻の差を求める場合、ネイティブな書き方だとこのようになります。
echo abs(strtotime('now') - strtotime('+1 day'));
一方、Carbonの場合は次のように直感的に書くことができます。
echo Carbon::now()->subDay(1)->diffInSeconds();
導入
composerで。
{ "require": { "nesbot/Carbon": "*" } }
How to Use
1. use
use Carbon\Carbon;
2. オブジェクト生成
$carbon = Carbon::now();
3. 使う
print $carbon->addDay(); // 1日増加 print $carbon->addDays(3); // 3日増加 print $carbon->subDays(3); // 3日減算 print $carbon->addYear(); // 1年増加
オブジェクト生成しなくても使える
Carbon::now()->addDay();
色々な使い方
昨日の3時0分0秒
Carbon::yesterday()->setTime(3, 0, 0);
先週の今日
Carbon::today()->subWeek();
先週の月曜日
Carbon::today()->subWeek()->startOfWeek();
先週の月曜日12時30分
Carbon::today()->subWeek()->startOfWeek()->setTime(12, 30, 0);
去年の4月の今
Carbon::now()->subYear()->month(10);
今と何年離れているか
echo Carbon::now()->subYears(50)->diffInYears();
土曜日判定
$carbon = Carbon::now(); if($carbon->dayOfWeek == Carbon::SATURDAY){ // process }
その他の便利な使い方は公式サイトでどうぞ。
かねこ