2016-08-09 4 views
1

PHPに2つの変数があります。 1つは、今日の日付を取得し、それに1ヶ月を追加しています。それはうまく動作します。もう1人はその日付をとり、6日を追加する予定です。何らかの理由で、その部分は仕事を拒否します。私はそれを間違って書式設定するだけですか?私はいつも01-06-1970を私のデータベースに入れます。PHP変数に日数を加算する

ここで今日の日付を取得し、1ヶ月を追加し、変数(正常に動作します)

$renewdate = date('Y-m-d', strtotime('+1 month')); 

ここでは、$ renewdateに6日間追加の変数です(動作しない)

$latedate = date('Y-m-d', strtotime('+6 days',$renewdate)); 

答えて

5

strtotimeの第2引数はUNIXのタイムスタンプです。現在$renewdateは文字列です。したがって:

$latedate = date('Y-m-d', strtotime('+6 days', strtotime($renewdate))); 
+0

これは私のコードに基づいて動作します。ありがとう! –

3

PHP 5.2.0もたらしたDateTime、なぜあなたはまだ古い機能に固執していますか? OOPのアプローチは良いです!

$dtCreate = DateTime::createFromFormat('Y-m-d H:i:s', '2016-08-02 16:16:02'); 
$dtCreate->add(new DateInterval('P6D')); 

これは、あなたのDateTimeオブジェクトに6 daysが追加されます詳細についてはDateIntervalを参照してください。あなたが間隔を追加した後

、あなたはしかし、あなたが望むあなたのオブジェクトをformatことがあります。あなたが見ることができるように、これは、2016-08-08 16:16:02を返します

$dtCreate->format('Y-m-d H:i:s'); 

、それは6日後です。

+0

これは良い解決策のように見えますが、私はcreateFromFormat関数とP6D関数が何をするのか理解していません。あなたはそれを分解できますか?私はこの方法をよりよく理解したいと思います。 –

+0

@SpyderTech私は公式のPHPマニュアルへのリンクを提供しました。 –