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

mie*_*mia 5 php time datetime date

如何将两个 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"
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

Cor*_*bba 3

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;
Run Code Online (Sandbox Code Playgroud)