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”;

3/30にこれで、2012-02-29
が返ってきます。

This entry was posted on 金曜日, 3月 30th, 2012 at 2:44 PM and is filed under blog, php. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Unityによるゲームを公開しております iOS/Android
https://itunes.apple.com/jp/app/lost-knight-3d-action/id900917032
https://play.google.com/store/apps/details?id=com.groundroad.runknight

各種開発支援・機能開発等小さいお仕事などもお請けしております。
unity開発支援, PHPシステム開発, javascript/html5 フロント開発, titanium mobileアプリ開発
お気軽にお問い合わせください
大崎・五反田近郊での対面でのお打ち合わせはいつでも可能です。