PHP-分钟之间的时差

时间:2019-02-01 08:45:29

标签: php

我正在尝试计算两次的差。我正在使用这种方法在几分钟内返回差额。

$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$timeDuration = $interval->format('%im');

但是,$timeDuration返回15m而不是75m。 任何可以纠正代码以使其在数分钟内返回正确正确差值的帮助吗?

3 个答案:

答案 0 :(得分:1)

因为9am10:15am之间的difference是1小时($interval->h)和15分钟($interval->i),而不是实际的75分钟。

如果要获取总分钟数,则必须进行计算:

$differenceInMinutes = $interval->i + ($interval->h * 60);

如果您希望有更通用的解决方案,那么我会花unix时间:

$differenceInSeconds = abs($datetime1->format('U') - $datetime2->format('U'));

$differenceInMinutes = ceil($differenceInSeconds / 60);

答案 1 :(得分:0)

几分钟之内就能变得与众不同的简单方法

<?php

 $start = date_create('1990-01-01 09:00:00');
 $end = date_create('1990-01-01 10:15:00');

 $interval=date_diff($end, $start);

 $hours   = $interval->format('%h'); 
 $minutes = $interval->format('%i');

 $in_minutes = $hours * 60 + $minutes;

 echo  'Diff. in minutes is: '.$in_minutes;

?>

答案 2 :(得分:0)

当您尝试计算两个DateTime之类的$datetime1 = new DateTime('9.00am');$datetime2 = new DateTime('10.15am');之间的差异时,您知道该差异为75分钟,但结果为diff() $interval->h的方法是1小时,$interval->i的方法是15分钟。因此,这就是计算方法:

$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$hours   = $interval->format('%h'); 
$minutes = $interval->format('%i');
$difference_in_minutes = $hours * 60 + $minutes;

echo  'Difference in minutes is: ' . $difference_in_minutes . "\n";

有一个有效的snipped in this link