1

我有 2 个日期,我想了解使用date_diff 函数的不同之处。

这是我正在运行的代码:

$starttime=DateTime::createFromFormat("Y-m-d\TH:i:sP",'2014-10-08T22:03:51.579+02:00');

$stoptime=DateTime::createFromFormat("Y-m-d\TH:i:sP",'2014-10-08T22:04:59.811+02:00');

$interval = date_diff($starttime, $stoptime);

$interval->format("%i %s");

这应该使用“01:08”从日期计算中返回一个字符串

如果它计算正确,但我认为创建日期似乎有问题,则 var_dump$starttime$stoptime返回 FALSE,根据文档,这意味着无法创建 datetime 对象。我是否为我的日期/时间字符串指定了错误的格式?

4

1 回答 1

2

你让它变得比它需要的更复杂。DateTime()可以处理该日期格式,所以跳过使用createFromFormat()

$starttime= new DateTime('2014-10-08T22:03:51.579+02:00');
$stoptime= new DateTime('2014-10-08T22:04:59.811+02:00');
$interval = date_diff($starttime, $stoptime);
echo $interval->format("%i:%S");

演示

此外,用于%S为您的秒数获取前导零。

于 2014-10-14T15:36:30.277 回答