如何计算php中两次时间的差异并显示出来

how to count the difference between the two time in php and show it

我需要在 PHP 中显示两次之间的差异 我使用 strtotime() 函数将我的时间转换为整数,但我的问题是结果与我的预期不符

<?php
$hour1 = '12:00:00';
$hour2 = '9:00:00';
$avg = strtotime($hour1) - strtotime($hour2);
$result = date('h:i:s', $avg); // result = 06:30:00 what I expected is 3:00:00

但不同的是3:00:00这个怎么算?

你可以做到:

$hour1 = '12:00:00';
$hour2 =  date('h', strtotime('9:00:00')); 
$avg= date('h:i:s', strtotime($hour1. ' - '.$hour2.' hours') );
echo $avg; //3:00:00

您可以创建 DateTime instances and use diff 函数来计算两次之间的差异。然后您可以将它们格式化为小时、分钟和秒。

<?php

$hour1 = '12:00:00';
$hour2 = '09:00:00';

$o1 = new DateTime($hour1);
$o2 = new DateTime($hour2);

$diff = $o1->diff($o2,true); // to make the difference to be always positive.

echo $diff->format('%H:%I:%S');

演示: https://3v4l.org/X41pv