CakePHP(v3.x)、Chronosに頼って日付が未来か過去かを判定する。

Chronosを使うと日付が未来か過去かの判定もメソッドを利用してスッキリ書くことができます。

ある日付が未来かを判定する

>>> use Cake\i18n\FrozenDate;
>>> $now = new FrozenDate();


>>> $now->isFuture();
=> false

ある日付が過去か未来かを判定する

>>> use Cake\i18n\FrozenDate;
>>> $now = new FrozenDate();


>>> $now->isPast();
=> true

判定時点では$nowに値が代入された瞬間は全て過去なので上記の様な結果になります。 時間は刻一刻と過ぎていきます。