2009-05-31 31 views
0

私は2009-06-30(2009年6月30日)のような日付があります。私は2ヶ月、および最初の日付の前後3日前に現れる日付を計算したいと思います。または、3ヶ月、6日、前後などなど。どうすればいいですか? 2ヶ月とwhatever 3日後の日付を与えるだろう(たとえば、ちょうどあなたがこの作業のためのMySQLで使用できるバリアントの構文の両方を表示する)DATE_SUB()またはトリッキーなPHP/MySQLの日付計算

答えて

2

DATE_ADD(whatever, INTERVAL 2 MONTH) + INTERVAL 3 DAYDATE_ADD()を使用して簡単な方法はあります。

+0

がおすすめです。月の前の日数を加算するか減算するかなどについては特に注意する必要がありますか?または、最終的に同じ日付を計算しますか? –

+0

保証はありません: '選択' 2009-01-30 ' - 間隔1日+間隔1ヶ月' 2009-02-28と言うが、 '選択' 2009-01-30 '+間隔1ヶ月 - 間隔1日; 2009-02-27。 「Nヶ月の追加」は、数ヶ月の長さが異なるため、明確に定義された数学演算ではないため、そこに「あいまい数学」がいくつかあります。 –

0

Zend_Dateはこの種のものに最適です。 Zend_DateはZend_Frameworkの一部で、Zend_Dateの部分だけを使うことができます。フレームワーク全体を使う必要はありません。

日付に数か月を追加して、すべての複雑さを処理します。 PHPで見つけた他の方法よりもずっと簡単です。

0

DateTime:subを使用できるはずです。 3か月と6日の日付を取得するには、

date_sub($myDate,"P3M6D");