PHP计算两个时间戳之间的确切小时数分钟和秒数

时间:2016-04-20 02:22:54

标签: php

我有两个时间戳 2016-01-01 00:00:00
2016-01-02 23:59:59

使用PHP如何计算两次之间的小时数和分钟数,并将结果作为小数点后的2位数。

目前我有这个:

    $Start = new DateTime($StartTime);
    $Finish = new DateTime ($FinishTime);
    $Interval = date_diff($Start,$Finish);
    $Hours = $Interval->format('%h.%i');

但是如果用户在第1天启动计时器并在第2天结束,则结果不正确。

3 个答案:

答案 0 :(得分:3)

您可以将天数乘以24将其转换为小时数,然后将小时数相加并连接分钟数:

$start = new DateTime('2016-01-01 00:00:00');
$end = new DateTime('2016-01-02 23:59:59');
$interval = $end->diff($start);
$days = $interval->format('%d');
$hours = 24 * $days + $interval->format('%h');
echo $hours.':'.$interval->format('%i');

答案 1 :(得分:0)

试试这个。

$Hours = $Interval->format('%a.%h.%i');

答案 2 :(得分:0)

您可以将DateTime格式化为UNIX时间戳,然后简单地减去以获得总秒数,并使用gmdate()格式化输出。

$Start = new DateTime($StartTime);
$Finish = new DateTime ($FinishTime);
$Interval = $Start->format('U') - $Finish->format('U');
$Hours = gmdate("H:i:s", $Interval);