前説
前回、PHPで日付チェックを紹介しましたので、今回は、PHPで日付を比較する方法を紹介したいと思います。
日付を比較するため、設計上は単項目チェックではなく、関連項目チェックの範囲になります。そのため、日付を比較する前に、日付チェックを行う必要があります。ご注意ください。
日付チェック方法については「PHPで日付チェックを行う方法」をご参考ください。
比較対象日付が等しいかどうか
PHPで日付を比較する方法はいろいろありますが、一番使いやすくシンプルな方法はやはりPHP本家関数:「strtotime」を使って判断することだと思います。
※32bitの「strtotime」には2038年問題という話がありますが、少なくともこの5,6年間、32bitのサーバーは聞いたことがなかったので、安心して使いましょう。
比較対象日付が等しいかという比較する方法を見てみましょう。
1 2 3 4 5 6 7 8 9 |
function date_eq($date1, $date2){ return strtotime($date1) == strtotime($date2); } |
一行だけで完結しました。シンプルですね。「strtotime」関数を使うだけで、解説する必要がないと思います。
比較対象日付が大きいかどうか
記号を変えるだけですね。
1 2 3 4 5 6 7 8 9 |
function date_gt($date1, $date2){ return strtotime($date1) > strtotime($date2); } |
比較対象日付が大きいもしくは等しいかどうか
同じく記号を変えるだけですね。
1 2 3 4 5 6 7 8 9 |
function date_get($date1, $date2){ return strtotime($date1) >= strtotime($date2); } |
比較対象日付が小さいかどうか
比較対象の前後を入れ替えすれば、上記の「date_gt」サンプルも使えますが、実際の実装の都合で、どうしても小さいチェックが必要となる時もありますね。
1 2 3 4 5 6 7 8 9 |
function date_lt($date1, $date2){ return strtotime($date1) < strtotime($date2); } |
比較対象日付が小さいもしくは等しいかどうか
同じ理由で、小さいもしくは等しいバージョンも提供します。
1 2 3 4 5 6 7 8 9 |
function date_let($date1, $date2){ return strtotime($date1) <= strtotime($date2); } |
まとめ
何も解説しなくて、PHPで日付を比較する方法を紹介しました。いかがでしょうか、簡単ですね。日付に関する処理がまだまだありますので、例えば、年度のチェックや年齢の計算などなど、整理して後ほど公開するつもりです。ぜひご期待ください。
それでは、また!