PHPで月末日を取得するためには例えば今月では以下のコードで対応できます。
echo date('Y-m-t'); // 2015-11-30
昨月、翌月は上のコードを
date('Y-m-t', strtotime(date('Y-m-t') . '-1 month')); date('Y-m-t', strtotime(date('Y-m-t') . '+1 month'));
とすると月の部分だけインクリメントorデクリメントしてくれて一見良さそうですが、小の月と大の月、2月が絡んでくると上手く月末日が取得できない時があります。 例えば、今月が10月だとすると
date('Y-m-t', strtotime(date('Y-m-t') . '-1 month')); //2015-10-01
となってしまいます。そこで今月の月末を求める→そこから一ヶ月ずらす、ではなく、今月の月初めを求める→一ヶ月ずらしてその月の月末日を求める、というようにしてやります。
date('Y-m-t', strtotime(date('Y-m-01') . '-1 month'));
これで小の月や2月も問題なく表示されます。