PHP:使用DateTime::modify将两个DateTime对象的差异添加到另一个日期


PHP: Add difference from two DateTime object to another date using DateTime::modify

如何将两个DateTime对象之间的差异添加到另一个DateTime object?我尝试了一些与下面类似的代码,但没有成功。

$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"

有人能帮我吗?

format()不计算Interval的绝对秒数,它只为您提供intern属性的值。既然要添加,为什么不简单地使用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;