日期和时间24小时格式在PhP中获得差异

日期和时间24小时格式在PhP中获得差异,php,datetime,Php,Datetime,我有两个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

我有两个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分钟。我的错误是什么?

您正在除以3600以将秒转换为小时,然后使用
数字\u格式
以两个小数位呈现结果

表达式的结果是:

5.23
实际上大约是5小时14分钟。(请记住,一小时有60分钟。)


而不是这样做,您应该以秒为单位保存该值,然后使用。一种可能性是;链接的SO问题还有许多其他问题。

您将除以3600,将秒转换为小时,然后使用
数字\u格式
将结果显示为两位小数

表达式的结果是:

5.23
实际上大约是5小时14分钟。(请记住,一小时有60分钟。)


而不是这样做,您应该以秒为单位保存该值,然后使用。一种可能性是;与此相关的SO问题还有许多其他问题。

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

0.23 * 60 = 13.8

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

0.23 * 60 = 13.8
试试这个:

$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 "; 
试试这个:

$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 "; 
可能的重复可能的重复