2014-08-07

PHPで日付を扱うなら Carbonライブラリが便利すぎる!!

個人的にまた災難が起こってしまった後、はじめての投稿になります。
みなさんもお体にはくれぐれもお気をつけ下さい(汗)

さて、今回はPHPの日付に関する記事になります。
というのも、最近ハマっているPHPフレームワーク「Laravel 4」には Carbonが標準搭載されているようで、これを使ったらもう昔には戻れない!と思ったのでぜひ紹介&備忘録としてその使い方を公開したいと思います。




[最終結論] 直感的に使えるのでとても便利です!なんならLaravel以外での開発でも使っていこうと思いました。


では、使い方に行く前に注意点を少し。
Laravel での使用を想定しているので、基本的に static な使い方で書いてます。
必要に応じて new Carbon(); してインスタンスを作ってくださいね。
あと、PHPは5.3以上必要です。

また、よく使うだろうというものだけで、全てのメソッドは網羅していません。詳しくはCarbon(英語) を確認してください。


1.基本的な使い方。


・今の時間は?

 Carbon::now();

・今日が始まる時間を知りたい

 Carbon::today(); // (例)2014-08-07 00:00:00

・じゃあ、昨日は?

 Carbon::yesterday(); // (例)2014-08-06 00:00:00

・明日も教えて。

 Carbon::tomorrow(); // (例) 2014-08-08 00:00:00

・タイムスタンプがほしいんだけど?

 Carbon::today()->timestamp; // (例) 1407337200



2.足したり引いたりする使い方。


・今からちょうど一日後/前の時間は?

 Carbon::now()->addDay();
 Carbon::now()->subDay();

・3日後/前

 Carbon::now()->addDays(3);
 Carbon::now()->subDays(3);

 ※その他にも

 秒: second(s)
 分: minute(s)
 時間: hour(s)
 年: year(s)
 月: month(s)

 でも同様のメソッドが用意されています。

 例) addSecond(), subYears(5)


3.文字列から指定する使い方。

・次の水曜日は?
 
 new Carbon('next wednesday');

・今週の木曜日は?

 new Carbon('this thursday');

 ※この辺は英語の知識が必要になりますね。昔学校で習ったはずですが、、、(笑)


4.各種データを取得する使いかた。

 $dt = Carbon::now();
   
 $dt->year;
 $dt->month;
 $dt->day;
 $dt->hour;
 $dt->minute;
 $dt->second;
 $dt->daysInMonth;

 ※いつものごとく、月($dt->month)の数字はゼロから始まるので+1が現在の月のようです。
 ※逆に上記に数字を代入することで時間をセットすることもできるようです。便利!


5.多分必要になった時にとても感謝するだろう使い方。


・年齢

 Carbon::createFromDate(1980, 1, 1)->age;

・週末?

 if (Carbon::now()->isWeekend()) {

  echo 'パーティ!'; // 本家のサンプルにこう有ります(笑)

 }

・もう過ぎた?まだ?

 $dt = Carbon::now()->subDay();
 
 if ($dt->isPast()) {

  echo 'もう過ぎた!';

 }


 $dt = Carbon::now()->addDay();
 
 if ($dt->isFuture()) {

  echo 'まだ!';

 }

・タイムゾーンが知りたい

 Carbon::now()->timezoneName;


6.アロー演算子「->」の使い方。

 $dt = Carbon::now();
   
 echo $dt->year(1975)
     ->month(5)
     ->day(21)
     ->hour(22)
     ->minute(32)
     ->second(5);

 ※Laravelのように一気にかけるのはコードがスッキリして好きです。^^


と、ざっとこんな感じですね。
あとは日付の比較やBetween を使った便利なものもありますが、すこし複雑になるので気になった方は本家のCarbonのGitHubページをご覧ください。

それにしても技術は確実に進歩していっています。
より簡単に高度なプログラムが、しかも直感的に使えるようになってきていますね。

なお、Carbon はMITライセンスなので、開発者にはホントにありがたいです。
Brian Nesbittさん、ありがとうございます。


ということで以上です。
お疲れ様でした!


0 件のコメント:

コメントを投稿