2012-03-04 53 views
4

如何將兩個DateTime對象之間的差異添加到另一個DateTime對象?我嘗試了一些類似於下面的代碼,但沒有奏效。PHP:使用DateTime將兩個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 2012-03-04 13:02:13

+0

沒什麼,真的... – miestasmia 2012-03-04 13:02:49

+0

如果你使用PHP5.3或更新版本,你可以使用DateTime :: add否則DateTime :: modify。查看我對DateTime :: modify()的回答 – 2012-03-04 13:16:54

回答

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

「DateTime :: add()」在PHP5.2中不可用。那就是爲什麼OP用'DateTime :: modify()'來表示它。請參閱[這裏]的註釋(http://www.php.net/manual/en/datetime.add.php#refsect1-datetime.add-註釋)。 – 2012-03-04 13:15:41

相關問題