CarbonPeriod で期間を逆順にする



Carbon とは

PHP で日付時刻を扱う DateTime 型がありますが、これのラッパーとして高機能なクラスが Carbon です。

Carbon は便利で人気のあるライブラリのため Laravel などのフレームワークでも標準で組み込まれています。

CarbonPeriod とは

CarbonPeriod は Carbon のライブラリに含まれている期間を表わすクラスで、これを使うと foreach である期間中の反復処理をするときにとても便利です。PHP 標準にある DatePeriod の Carbon 版です。

逆順にする

さて、CarbonPeriod で期間を作成して forearch で回すときは、過去から未来に日付を扱うことになります。

これを逆転させて日付を未来から過去に向けて表示したいとき、ためしに CarbonPeriod の前後を引数を入れ替えてみるとまったくループの中に入りません。

また、CarbonPeriod は Laravel の Collection ではありませんので、$period->reverser() のようなコードも書くことができません。

簡単な方法としては、CarbonPeriod を toArray() メソッドで配列に変換して、それを array_reverse 関数で逆順にソートします。

toArray() の結果の配列は、Carbon の配列です。foreach で取得した変数の中身は Carbon 型となので同様に扱えます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です