在php中查找时间差异

时间:2016-06-07 05:17:39

标签: php time timestamp

我需要找到2个时间戳值之间的差异,如何计算它

$time1 ='2016-08-31T07:00:00';
$time2 ='2016-08-31T08:45:00';

I need output time value as 1h 45m 

如何获得所需的输出

4 个答案:

答案 0 :(得分:6)

<?php
$time1 ='2016-08-31T07:00:00';
$time2 ='2016-08-31T08:45:00';
$d = strtotime($time2) - strtotime($time1);
echo gmdate("g", $d),'h ',gmdate('i',$d),'m ';

答案 1 :(得分:2)

$date_a = new DateTime('2016-08-31T07:00:00');
$date_b = new DateTime('2016-08-31T08:45:00');

$interval = date_diff($date_a,$date_b);

echo $interval->format('%h Hours:%i Min:%s sec');

您可以测试代码Here

答案 2 :(得分:1)

使用strtotime()转换时间戳中的日期时间,并获得2次之间的差异。

现在,将差异划分为欲望格式。使用以下代码。

$time1 ='2016-08-31T07:00:00';
$time2 ='2016-08-31T08:45:00';
$diff = abs(strtotime($time1) - strtotime($time2));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
$hours   = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60)); 
$minuts  = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); 
$seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60)); 

echo $hours . "h " .$minuts."m";

<强>输出

1h 45m

现场演示:Click Here

答案 3 :(得分:0)

使用此代码,

$datetime1 = strtotime("09:00");
$datetime2 = strtotime($items['duration']);
$interval  = abs($datetime2 - $datetime1);
$min   = round($interval / 60);
$d = floor ($min / 1440);
$h = floor (($min - $d * 1440) / 60);
$m = $min - ($d * 1440) - ($h * 60);
if (!$m) {
  $m = '00';
}
echo $h."h:".$m."m";
相关问题