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 "同じ年月ではありません。"; } ?>
○実行結果
同じ年月です。