PHPでの日付文字列の比較
次のテキスト形式で2つの日付があるとします:
<?php
$date1 = '2020-12-01';
$date2 = '2019-12-01';
?>
この場合、これらの日付を比較して、 どちらの日付がより後かを知ることができます:
<?php
var_dump($date1 > $date2);
?>
これらの日付の比較はどのように行われるのでしょうか? 実際には、私たちの日付は文字列であり、 PHPはそれらを文字列として比較します。 つまり、PHPはまず2つの日付の最初の文字を 比較します:もしそれらが同じであれば、 PHPは2番目の文字を比較し、違いが見つかるまで このように続けます。私たちの日付形式では 最初に年、次に月、そして日の順に配置されているため、 このような比較が可能なのです。
日付が同じ形式であることも重要です。 私たちのケースでは、日付の部分の区切り文字は ハイフンです。これはもちろん必須ではありません。 例えば、ドットを置くこともできます:
<?php
$date1 = '2020.12.01';
$date2 = '2019.12.01';
?>
または、区切り文字を完全に取り除くこともできます:
<?php
$date1 = '20201201';
$date2 = '20191201';
?>
比較が正しく行われるためには、 配置が次の順序であることが重要です:まず年、 次に月、そして日。
以下の2つの日付を比較し、 どちらがより後かを示すメッセージを 出力するコードを書いてください:
$date1 = '2020-11-30';
$date2 = '2020-12-01';