検索項目や条件などで、デフォルトとして今月を指定したい時に役立つ、今月(当月)の月初日と月末日を取得する方法を紹介します。
【Carbon】PHPで今月(当月)の月初日と月末日を取得する方法
今月の月初日と月末日を取得にはCarbonを使用します。CarbonとはPHPのDateTimeクラスを継承した日付操作ライブラリです。
Carbon::now()で現在時刻を取得し、startOfMonth()で月初時刻を取得します。toDateString()で日付のみを取得しています。
例)
1 | // 2019-02-01 |
月末日も同様で、endOfMonth()で月末時刻を取得しています。
例)
1 | // 2019-02-28 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /** * 今月の月初日取得 * @return string */ public function get_default_from(): string { return Carbon::now()->startOfMonth()->toDateString(); } /** * 今月の月末日取得 * @return string */ public function get_default_to(): string { return Carbon::now()->endOfMonth()->toDateString(); } |
例として、以下で日付の検索項目のある画面に遷移した時にデフォルト(月初日・月末日)をセットします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ... <li> <dl> <dt>開始日</dt> <dd> <?php echo Form::input('from', Input::post('from', $from)); ?> </dd> </dl> </li> <li> <dl> <dt>終了日</dt> <dd> <?php echo Form::input('to', Input::post('to', $to)); ?> </dd> </dl> </li> ... |
viewから取得した$fromと$toがセットされていない場合は、デフォルトの値をセットします。
1 2 3 4 5 | $from = ! \Validation::_empty(\Input::get('from')) ? \Input::get('from') : $this->get_default_from(); $to = ! \Validation::_empty(\Input::get('to')) ? \Input::get('to') : $this->get_default_to(); $this->set_view_data('from', $from); $this->set_view_data('to', $to); |
以上、Carbonを使って月初日と月末日を取得する方法でした。