PHPのstrtotime関数で +1 month するときの注意
PHPのstrtotime関数で来月、再来月のmonthを取得してたらハマったのでメモ。実際ハマったのは+2 monthの時だけど、月によっては+1 monthでハマれると思う。
今日(2012/07/31)の時点で以下のコードを実行すると '2012-10' と表示されます。本当は '2012-09' であって欲しかった・・・。
<?php // 今日から2ヶ月後のtimestampが欲しいよー $timestamp = strtotime('+2 month', date()); $yyyymm = date('Y-m', $timestamp); var_dump($yyyymm);
解決策は以下。 '2012-07-01+2 month' になるようにすればいいらしい。
<?php $timestamp = strtotime(date('Y-m-01').'+2 month'); $yyyymm = date('Y-m', $timestamp); var_dump($yyyymm);
あ、dayまで求めたい時は '2012-10-01' になるのが正解なのか。