PHPで月末日を取得する

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月も問題なく表示されます。