我有两个时间戳
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天结束,则结果不正确。
答案 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);