PHPライブラリCarbonについてちょっと勉強&発表してみた

2016年6月23日

こんにちは。
chatboxエンジニアのショウノです。

昨日は株式会社TAMさんのコワーキングスペースで行われた関西PHP勉強会で発表してきました。
今回発表した内容はPHPライブラリの「Carbon」。
私が普段の業務でよく使っているLaravelにも標準搭載されています。

Carbonでできること

CarbonはPHPのDateTimeクラスを継承したライブラリで

  • 世界各国の時間を表示できる
  • 国ごとの時間表記に合わせて時刻表示をしてくれる(国によって微妙に違ったりするので結構めんどくさい)
  • 日付で足し算や引き算ができる
  • 時差の計算もできる
  • 「今月の第二火曜って何日?」とかもできる

などなど、時刻に関するいろんなことがサクッとできちゃうわけです。

そんな便利なCarbonですが、まだまだへぼへぼエンジニアの私は
「そんな新しいこといっぺんに覚えられるほど賢くないわっ!(おこ」
と放置してましたので、今回の勉強会を機にすこ〜しだけ勉強してみたわけです。

勉強したのはほんの一部ですが、使ってみるとやっぱり便利。
スライドでも紹介したような「足し算」「引き算」「比較」だけでもかなりいい感じです。

タイムゾーンのはなし

質疑応答の時間ではタイムゾーンの話になりました。
今回の発表にあたってComposerでCarbonをインストールしていろいろ試していると、日付は合ってるのに時間がおかしい。
いろいろ調べてみるとどうやら私の使っているphpの設定ファイル(php.ini)のタイムゾーンがスイスのチューリッヒになっていることが原因でした。

「なぜチューリッヒなんですか?」という質問には「し・・・知りません」と言ってしまいましたが(笑)、どうやら私のphp.iniを作ってくれた人(別に私のためだけに作ってもらったわけじゃないですけど)がスイスのチューリッヒにいたらしくタイムゾーンも設定されていたとか。

これを日本時間に合わせたいときはphp.iniのタイムゾーンを「Asia/Tokyo」にしてもいいんですが、そうすると環境が違うとやはりそれぞれのphp.iniのタイムゾーンに依存するので業務では好ましくない。
なので、実際の業務ではLaravelなどのフレームワークのタイムゾーンを設定するのが良いだろう!というオチになりました。
(ちなみにLaravelのタイムゾーンはconfig/app.phpに書いてます)

発表をおえて

内容はうっすいうっすいものでしたが、私的には「Carbonって難しくないなぁ」ということがわかっただけでも大きな収穫だと思っています。
自分の知らない事を新しく学ぶ時っていつも「うわ〜難しそう」と身構えてしまうのですが、大体は簡単なことからちょこちょこやっていけば1つもわからないことなんてそうそうないので、これからもちまちま努力しようかなーっと思います。