我发现这个post显示了如何获得两个日期之间的小时差异。
日期为: 2017-07-03 13:55:20和2017-07-04 21:17:44
当我尝试使用此代码时,它给了我错误的值:
$date1 = date_create('2017-07-03 13:55:20');
$date2 = date_create('2017-07-04 21:17:44');
$diff = date_diff($date1,$date2);
$hour = $diff->h;
returns 8 hours //incorrect
但这个给了我正确的价值:
$hourdiff = round((strtotime('2017-07-03 13:55:20') - strtotime('2017-07-04 21:17:44'))/3600);
returns 31 hours //correct
答案 0 :(得分:3)
你必须走这条路:
<?php
$date1 = date_create('2017-07-03 13:55:20');
$date2 = date_create('2017-07-04 21:17:44');
$diff = date_diff($date1,$date2);
$hour = ($diff->d * 24) + $diff->h;
echo $hour;
date_diff
函数为您提供如下区别:
y m d h m s
-----------------------------
Date1: 2017-07-03 13:55:20
| | | | | |
Diff: 0 0 1 8 0 24
| | | | | |
Date2: 2017-07-04 21:17:44
答案 1 :(得分:0)
您可以利用date_diff返回的对象的'format'函数。 (http://php.net/manual/en/function.date-diff.php)
这是我的解决方案,利用格式功能 -
$date1 = date_create('2017-07-03 13:00:00');
$date2 = date_create('2017-07-04 21:17:44');
$diff = date_diff($date1,$date2);
$hour =( $diff->format('%d')*24 + $diff->format('%h')) . '.' . $diff->format('%i') . 'mins';
echo $hour; // output = '32.17mins'
答案 2 :(得分:0)
使用此,
$d1= new DateTime("2017-07-03 13:55:20");
$d2= new DateTime("2017-07-04 21:17:44");
$interval= $d1->diff($d2);
echo ($interval->days * 24) + $interval->h;