繁体   English   中英

如何在php的Date函数中嵌入数字值然后获得区别?

[英]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');}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM