2012-03-04 5 views
4

2つのDateTimeオブジェクトの差分を別のDateTimeオブジェクトに追加するにはどうすればよいですか?私は以下のようないくつかのコードを試しましたが、うまくいきませんでした。PHP:DateTime :: modifyを使用して、2つのDateTimeオブジェクトと別の日付との差分を追加します。

$first_time=new DateTime('01/01/2000 00:00:00'); 
$second_time=new DateTime('01/01/2000 00:00:50'); 
$diff=$first_time->diff($second_time); 
$time=new DateTime('01/01/2012 12:00:00'); 
$time->modify('+'.$diff->format('%s').' seconds'); 
echo $time; 
//Should echo: "01/01/2012 12:00:50" 

誰かが私を助けてくれますか?

+0

エコーの実際の出力は何ですか? – Corubba

+0

実際には何もありません... – miestasmia

+0

PHP5.3以降を使用している場合は、DateTime :: addを使用できます。それ以外の場合は、DateTime :: modifyを使用します。 DateTime :: modify()の回答を参照してください。 –

答えて

3

format()インターバルの絶対秒数は計算されませんが、インターン属性の値が表示されます。追加したいので、単にadd()を使用しないのはなぜですか? diff()はDateIntervalオブジェクトを返します。これはadd()に必要です。

$first_time=new DateTime('01/01/2000 00:00:00'); 
$second_time=new DateTime('01/01/2000 00:00:50'); 
$diff=$first_time->diff($second_time); 
$time=new DateTime('01/01/2012 12:00:00'); 
$time->add($diff); 
echo $time; 
+0

PHP5.2では 'DateTime :: add()'は利用できません。それはOPが 'DateTime :: modify()'でそれを嫌う理由です。ノート[ここ](http://www.php.net/manual/en/datetime.add.php#refsect1-datetime.add-notes)を参照してください。 –

関連する問題