CakePHP(v3.x)、Chronosに頼って(年)月の差分を求める。

CakePHPで日付を取り扱う場合はPHPの標準関数よりもFrozenDateなどを用いることが多いですがこれを用いれば比較的簡単に月の差分を求めることが出来ます。

さて、新型コロナウイルス感染症の影響で東京オリンピックの開催は2021/7に延期されたわけですが、今日から一体何ヶ月後に開催されるかをChronosに頼って出力してみましょう。

use Cake\i18n\FrozenDate

$today = FrozenDate::now();
$day_of_tokyo2020 = new FrozenDate('2021/7/23');

この$day_of_tokyo_2020は何ヶ月後かを知りたいときは 以下で求められます。

>>> $today->diffInMonths($day_of_tokyo2020);
=> 8

日付の差分を知りたいときは

>>> $today->diffInDays($day_of_tokyo2020)
=> 270

意外ともうすぐですね。本当に開催できるのでしょうか。