PHP:如何检测两个DateTime之间包含多少时间间隔?

时间:2016-11-09 13:34:06

标签: php datetime intervals

我有两个DateTime

$datetime1 = date_create_from_format('H:i', '12:10');
$datetime2 = date_create_from_format('H:i', '18:16');

我有几分钟的间隔,有些是考试56分钟

此区间在$ datetime1和$ datetime2之间包含多少次?

我试试

$diff = $datetime1->diff($datetime2)

但是对象$ diff不包含此信息

4 个答案:

答案 0 :(得分:0)

(strtotime($datetime2) - strtotime($datetime1))/56*60*60

这将为您提供两个日期时间之间的间隔数

答案 1 :(得分:0)

使用DateTime,您可以执行以下操作。

$datetime1 = new DateTime( '12:10' );
$datetime2 = new DateTime( '18:16' );

$diff      = $datetime1->diff( $datetime2 );

$total     = $diff->i + ( $diff->h * 60 );

echo $total;

答案 2 :(得分:0)

  

但是对象$ diff不包含此信息

确实如此,你必须找到它。使用hi属性:

<?php
$datetime1 = date_create_from_format('H:i', '12:10');
$datetime2 = date_create_from_format('H:i', '18:16');

$diff = $datetime1->diff($datetime2);
$minutes_diff = $diff->h * 60 + $diff->i;
var_dump($minutes_diff); // int(366)

$interval = 56;
$times_interval = $minutes_diff / $interval;
var_dump($times_interval); // float(6.5357142857143)

?>

答案 3 :(得分:0)

@Taras Germanyuk来自乌克兰,对于类似这样的事情,DateTime是你的朋友:http://php.net/manual/en/dateinterval.format.phphttp://php.net/manual/en/book.datetime.php。它使这些计算变得容易。

<?php
$d1 = new DateTime('12:10');
$d2 = new DateTime('18:16');

$interval = $d1->diff($d2);

echo ($interval->format('%i') + ($interval->format('%h') * 60));
?>