strtotimeがズレたので、datetime::add、datetime:subに変更する | PHP
閏年のせい?で、strtotimeがなぜかズレました。ズレないはずなのですが。
(datetimeでも同じでした。)
3/30日に一ヶ月前を指定すると3/1になりました・・・
strtorimeの説明に
この関数を使って日付の足し算や引き算を行うことはおすすめできません。 PHP 5.3 以降なら DateTime::add() や DateTime::sub() を、そして PHP 5.2 なら DateTime::modify() を使いましょう。
と書いてありました。
http://www.php.net/manual/ja/datetime.add.php
Dateinterval interval_specの書き方
http://jp2.php.net/manual/ja/dateinterval.construct.php
一ヶ月と一日前を指定してみる。
$date = new DateTime();
$date->sub(new DateInterval(‘P1MP1D’));
echo $date->format(‘Y-m-d’) . “\n”;
$date->sub(new DateInterval(‘P1MP1D’));
echo $date->format(‘Y-m-d’) . “\n”;
3/30にこれで、2012-02-29
が返ってきます。