php(h:m:s)格式的时差

时间:2018-08-13 05:39:25

标签: php date time

我在数据库中插入了两次,如何将结果相差两次,结果显示为h:s:m格式,所以我将尝试查找这次的差异

$from_time = $worker->timefm; //08:30:00  
$to_time= $worker->timeto;  //17:00:00
$diff=$to_time-$from_time;
echo $diff; //9

答案只显示9个,正确答案是8:30为什么这个只显示9个答案如何以时间格式显示如何解决此问题?帮我!!预先感谢

我将尝试使用此代码

  

How to get time difference in minutes in PHP

但不起作用

3 个答案:

答案 0 :(得分:0)

这里我正在使用date()函数。在调用此函数之前,我使用date_default_timezone_set()将默认时区设置为UTC。

date_default_timezone_set('UTC');
$diff= strtotime($to_time) - strtotime($from_time);
echo date('H:i:s', $diff);

OUTPUT
08:30:00

答案 1 :(得分:0)

您可以使用此功能计算时差,它也可以与日期和时间数据一起使用。 只需几秒钟即可获得差异,然后将其转换为h:m:s格式即可。

function get_time_difference($t1, $t2)
{
    $t1 = strtotime($t1);
    $t2 = strtotime($t2);;
    $hour = floor(($t1-$t2)/3600);
    $minute =floor(($t1-$t2)/60)%60;
    $second = ($t1-$t2)-($hour*3600+$minute*60); 
    return (date("H:i:s",strtotime($hour.":".$minute.":".$second)));
}

答案 2 :(得分:0)

<?php

// Time Calculation
$datetime1 = new DateTime('13:40:50');
$datetime2 = new DateTime('15:45:57');

$interval = $datetime1->diff($datetime2);
echo $interval->format('%H:%M:%S time');

?>

只需运行此代码,您将获得H:M:S格式的时差 像这样 02:00:07时间