PHPで日付時刻の処理を書くなら Carbon がおすすめ
どうも、筋トレにハマっているたきゃはしです。
本日はPHPにおける日付時刻のライブラリについて書いていきたいと思います。
突然ですが、日付や時刻が絡む処理って意外とやっかいだと思いませんか?おそら く皆さんもいくつか思い当たるフシがあるかと思いますが、そんなやっかい事も Carbon(カーボン)を使えば解消できるかもしれません!
Carbon - A simple PHP API extension for DateTime.
Carbon とはPHPのDateTimeクラスを継承して拡張された日時操作ライブラリです。
「Carbonってどうなの?流行ってるの?」という方向けに予め補足致します。
Carbonはすでに人気のフレームワークに統合されていたり、GitHubで☆3000に迫る評価もありますのでDateTimeライブラリとしてデファクトになるんじゃないかと予想できます。
ではインストールからはじめます。
composer require nesbot/carbon
Composerでインストールすれば
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
echo Carbon::now(); // 2015-05-13 10:14:28(現在の日時)
Carbon::setTestNow(Carbon::create(2015, 5, 9, 15, 0, 0));
echo Carbon::now(); // 2015-05-09 15:00:00
echo Carbon::today()->toDateString(); // 2015-05-09
Carbon::setTestNow();
$carbon = Carbon::create(1980, 4, 15, 10, 20, 30);
echo $carbon->year; // 1980
echo $carbon->age; // 35
echo Carbon::today()->subYears(13)->addMonths(2)->subDays(10)->toDateString(); // 2002-07-02
Carbonはすぐに使えます。
基本的にCarbonのメソッドはインスタンスを返します。なのでメソッドチェーンによる直感的な表現が可能です。またインスタンスを文字列型へとキャストするとデフォルトフォーマットに変換してくれます。
もちろんフォーマットを指定することも可能です。
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
$carbon = Carbon::create(1980, 4, 15, 10, 20, 30);
echo $carbon; // 1980-04-15 10:20:30
echo $carbon->format('Y年m月d日'); // 1980年04月15日
$carbon->setToStringFormat('Y/m/d H:i:s'); // デフォルトフォーマットを変更
echo $carbon; // 1980/04/15 10:20:30
$carbon->resetToStringFormat();
echo $carbon; // 1980-04-15 10:20:30