【PHP】指定時間前や指定時間後の日時を求めるの「注意」にあるように、日時によっては正確な月を取得できない場合があります。
※指定日時は「2014-03-31」
$startDate = date("Y-m-01", strtotime("-1 month"));
→2014-03-01
$endDate = date("Y-m-t", strtotime("-1 month"));
→2014-03-31
「2014-03-31」の1ヶ月前は「2014-02-31」
そんなもんねーよ、ってことで「2014-03-01」として扱われる
月末ではなく初日を基準にして計算すること
$targetDay = date("Y-m-01", time());
$startDate = date("Y-m-01", strtotime($targetDay . "-1 month"));
$endDate = date("Y-m-t", strtotime($targetDay . "-1 month"));
参考
http://ysklog.net/php/2095.html
0 件のコメント:
コメントを投稿