桁数の異なる日付で2つの年月が一致するか調べる

2つの日付の年月が同じか調べるには、文字列を比較する方法もありますが、月が1桁(1月)だったり2桁(12月)だったりすると、「先頭から6文字が一致するか」と比較してもうまくいきません

日付を配列に格納してarray_diff関数で差分を取ると簡単です。日付から配列を作成する処理は、「2012/8/1」のように年月日が「/」で区切られた日付をexplode関数で配列に分割する処理がおなじみです。

explode関数の3番目のパラメータで負の数(-n)を指定すると、最後のn個は配列に格納されません。これを利用して、「explode(“/”, “2012/8/1”, -1)」と記述して年月日の「日」を配列に格納しないようにすれば、配列の差分を求めるarray_diff関数で年月のみを比較することができます。

<?php
// 2つの年月を配列に格納
$d1 = explode("/", "2012/8/1", -1);
$d2 = explode("/", "2012/8/31", -1);

// 2つの年月の差分を調べる
if (count(array_diff($d1, $d2)) == 0) {
    echo "同じ年月です。";
} else {
    echo "同じ年月ではありません。";
}
?>

○実行結果

同じ年月です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする