【问题标题】:PHP: Add difference from two DateTime object to another date using DateTime::modifyPHP:使用 DateTime::modify 将两个 DateTime 对象的差异添加到另一个日期
【发布时间】:2012-03-04 12:58:21
【问题描述】:

如何将两个 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"

有人可以帮帮我吗?

【问题讨论】:

  • 回显的实际输出是什么?
  • 如果您使用 PHP5.3 或更新版本,您可以使用 DateTime::add 否则 DateTime::modify。请参阅我对 DateTime::modify() 的回答

标签: php datetime date time


【解决方案1】:

format() 不计算 Interval 的绝对秒数,它只是为您提供实习生属性的值。既然要加,何不干脆用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;

【讨论】:

  • DateTime::add() 在 PHP5.2 中不可用。这就是为什么 OP 需要 DateTime::modify()。请参阅注释here
猜你喜欢
  • 1970-01-01
  • 2017-07-30
  • 2014-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 2013-10-09
  • 1970-01-01
相关资源
最近更新 更多