如何在 php 中的日期函数中嵌入数字值然后得到差异?

How to embed numbers values in a Date function in php then get difference?

我有一个文件,我必须在其中计算所花费时间的总小时数。 但问题是我收到的数据分为小时和分钟。 我将它转换为 date() 函数,然后找出与 PHP 内置 time_diff() 函数的区别。但是还没成功。。 请帮忙.... 这是我正在获取的数据:

$HoursIn = $ls[$j][2];               // Punch-In Hours (e.g: 09)
$MinutesIn = $ls[$j][3];            // Punch-In Minutes (e.g: 38)
$TimeIn = $HoursIn.":".$MinutesIn; // Punch-In Total Time (e.g: 09:38)

$HoursOut = $ls[$j][4];                 // Punch Out Hours (e.g: 17)
$MinutesOut = $ls[$j][5];              // Punch Out Minutes (e.g: 44)
$TimeOut = $HoursOut.":".$MinutesOut; // Punch-Out Total Time (e.g: 17:44)

我已经试过了:

$HoursIn = 09;               // Punch-In Hours (e.g: 09)
$HoursIn->format('%h');
$MinutesIn = 38;           // Punch-In Minutes (e.g: 38)
$MinutesIn->format('%i');
$TimeIn = $HoursIn.":".$MinutesIn; // Punch-In Total Time (e.g: 09:38)

$HoursOut = 17;                 // Punch Out Hours (e.g: 17)
$HoursOut->format('%h');
$MinutesOut = 44;              // Punch Out Minutes (e.g: 44)
$MinutesOut->format('%i');
$TimeOut = $HoursOut.":".$MinutesOut;

echo $interval = $TimeOut->diff($TimeIn);

但是出现致命错误...

这是我的解决方案。样本的结果是 1 小时 3 分钟。希望很清楚,但如果有任何问题 - 问我:

<?php
$in_time=sprintf("%04u-%02u-%02u %02u:%02u:02u",2015,5,6,12,5,0); // Values : Year Month Day hour min sec
$out_time=sprintf("%04u-%02u-%02u %02u:%02u:02u",2015,5,6,17,8,0); // Values : Year Month Day hour min sec
$TimeIn = new DateTime($in_time);
$TimeOut = new DateTime($out_time);

$interval = $TimeIn->diff($TimeOut);
echo $interval->format('%h:%i');
?>

@MarkBaker 我在你的帮助下完成了这件事!谢谢! 我得到这样的结果:

$HoursIn = $ls[$j][2];         // Punch-In Hours
$MinutesIn = $ls[$j][3];      // Punch-In Minutes
$timein = gmdate('H:i:s', $HoursIn*60*60+$MinutesIn*60);

$HoursOut = $ls[$j][4];        // PunchOut Hours
$MinutesOut = $ls[$j][5];     // PunchOut Minutes
$timeout = gmdate('H:i:s', $HoursOut*60*60+$MinutesOut*60);

$time1 = new DateTime($timein);
$time2 = new DateTime($timeout);
$interval = $time1->diff($time2);           
$interval->format('%H:%i');

但是现在我想设置条件但条件不起作用:(我想制作 $interval= 00:00 但是如果条件不起作用...)

if($timeout == "00:00:00") {$interval->format('%0:%0');}