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

时间:2013-11-11 05:33:49

标签: 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分钟。我的错误是什么?

3 个答案:

答案 0 :(得分:4)

试试这个:

$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 "; 

答案 1 :(得分:0)

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

表达的结果是:

5.23

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

不是这样做,而是应该以秒为单位保留值,然后使用function to convert it to a human readable format。一种可能性是date_diff;链接的SO问题还有很多其他问题。

答案 2 :(得分:0)

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

0.23 * 60 = 13.8