在PHP中的日期时间之间得到差异

时间:2015-05-20 08:38:37

标签: php date time strtotime

我以前使用php strtotime函数来计算两个时间戳之间的差异,以检查给定约会的持续时间。现在我需要包括日期和时间,因为某些约会可以超过一天。

上一个代码:

$duration = date('H:i',strtotime($row['scheduleTimeEnd']) - strtotime($row['scheduleTime']) - 3600)

日期的新尝试:

$duration = date('H:i',strtotime($row['scheduleDateEnd'].'T'.$row['scheduleTimeEnd']) 
- strtotime($row['scheduleDate'].'T'.$row['scheduleTime']) - 3600)

两段代码都会产生相同的结果。即我在我的JSON Feed中约会,从5月12日10:20到5月18日17:20,下面的代码片段返回的持续时间值是07:09。

2 个答案:

答案 0 :(得分:1)

计算时差 -

$date1 = new DateTime('2015-05-17 17:20:00');
$date2 = new DateTime('2015-05-12 10:00:00');

$interval = $date1->diff($date2);
$days = $interval->days;
$hours = ($days * 24) + $interval->h;
echo "Difference : ". $hours .' : '.$interval->i;

使用DateTime接口。

<强>输出

Difference : 127 : 20

答案 1 :(得分:1)

问题在于您应该更新的date方法格式:

$duration = date('d H:i' ,strtotime(
                   $row['scheduleDateEnd'].'T'.$row['scheduleTimeEnd']) 
                 - strtotime($row['scheduleDate'].'T'.$row['scheduleTime']) - 3600)

我的意思是d H:i ^^。 ==&GT; Doc