Php 获取班次长度(两次之间的差值)
我正在开发一个应用程序,并试图计算轮班所需的时间长度。当我输入09:00 pm和6:00 am时,轮班时间设置为15:00而不是08:00。 我使用的示例代码如下:Php 获取班次长度(两次之间的差值),php,datetime,Php,Datetime,我正在开发一个应用程序,并试图计算轮班所需的时间长度。当我输入09:00 pm和6:00 am时,轮班时间设置为15:00而不是08:00。 我使用的示例代码如下: $shiftfrom = new DateTime($shiftfrom); $shiftto = new DateTime($shiftto); $hours = $shiftfrom->diff($shiftto); $hours = $hours->h.":".$hours->i; //how long a
$shiftfrom = new DateTime($shiftfrom);
$shiftto = new DateTime($shiftto);
$hours = $shiftfrom->diff($shiftto);
$hours = $hours->h.":".$hours->i; //how long a shift is
如何解决此问题?09:00 pm和6:00 am->9小时。我说的对吗?$date1=新日期时间'2006-04-12 21:00:00'$date2=新日期时间'2006-04-13 06:00:00';//diff方法返回一个新的DateInterval对象$diff=$date2->diff$date1;//调用DateInterval对象echo$diff->format“%h hours”上的format方法;请检查您的$shiftfrom和$shifto是否有正确的日期时间。@AlivetoDie是。这就是问题所在idea@DhananjayKyada$shiftfrom和$shiftto变量中没有日期。它们从html元素发送到php脚本。@FrankenCode确保在第二天设置$shiftto。。否则你会得到正确的结果,效果很好。非常感谢。但是,我不明白为什么需要$diff->days*24。因为$diff->days在我的情况下总是返回0。
$shiftfrom = "2019-06-24 09:00 PM";
$shiftto = "2019-06-25 06:00 AM";
$datetime1 = new DateTime($shiftfrom);
$datetime2 = new DateTime($shiftto);
$diff = $datetime1->diff($datetime2);
$hours = $diff->h;
$hours = $hours + ($diff->days*24);
$time = $diff->i;
echo $hours.":".$time;