日期和时间 24 小时格式 以 PHP 为单位获得差异


Date and Time 24 hour format Get Difference in PhP

我有两个 24 小时格式的日期

$fulldate_hour_start    = "2013-11-11 18:16:00 ";
$fulldate_hour_end      = "2013-11-11 23:30:00 ";

我用这个减去它们

$Hours = number_format((((strtotime($fulldate_hour_end) - strtotime($fulldate_hour_start)) / 60) / 60),2);

结果是 5 小时 23 分钟。 应该是 5 小时 14 分钟。我的错误是什么?

试试这个:

$date1 = new DateTime("2013-11-11 18:16:00");
$date2 = new DateTime("2013-11-11 23:30:00");
$interval = $date1->diff($date2);
echo "difference " . $interval->h . " Hours, " . $interval->i." Mintues, ".$interval->s." seconds "; 

您除以 3600 以从秒转换为小时,然后使用 number_format 以两个小数位呈现结果。

表达式的结果是:

5.23

这确实是大约 5 小时 14 分钟。(请记住,一小时有 60 分钟。

与其这样做,不如将值保留在几秒钟内,然后使用函数将其转换为人类可读的格式。一种可能性是date_diff;链接的SO问题还有许多其他问题。

由于一小时由 60 分钟而不是 100 分钟组成,因此 5.23 小时是 5 小时 13.8 分钟。0.2 小时的不匹配是由于将实际值四舍五入到小数点后两位得到 0.23。

0.23 * 60 = 13.8