date_diff 负数 php,php date_diff如何只计算当天小时数[关闭]

我正在做一个程序,你先插入excel文件,然后选择person,从excel中可以看到这个人什么时候来上班,什么时候出去。但现在我需要把当天的所有时间加起来。

例如,这个人工作了2个小时,然后离开了,过了一段时间,他回来了,现在又呆了5个小时,然后又离开了。

所以现在我需要程序识别上一个和下一个日期是否相同。如果它们是一样的,把它们加起来。但问题是如何做到这一点,如果这个人说要上夜班,我们就说他18点进去,第二天6点出去。所以这些时间必须分开。有人有什么想法吗?

到目前为止的代码:

table tr td {

border: 1px solid black;

}

table {

border: 1px solid black;

}

error_reporting(0); //disable all errors and notices

require_once "Classes/PHPExcel.php";

$chosenPerson = $_GET["dla_darbuotojo_pasirinkimas"];

$tmpfname = "visi.xls";

$excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname);

$excelObj = $excelReader->load($tmpfname);

$worksheet = $excelObj->getSheet(0);

$lastRow = $worksheet->getHighestRow();

$aInT = "Administracija[In]";

$vInT = "Vartai[In]";

$aExT = "Administracija[Exit]";

$vExT = "Vartai[Exit]";

$goingIn = false;

$goingExt = false;

$diffFinall = 0;

$goingInValue = 0;

$goingExtValue = 0;

echo "

for ($row = 1; $row <= $lastRow; $row++) {

if ($chosenPerson == ($worksheet->getCell('D'.$row)->getValue()) ) {

if (!$goingIn or !$goingExt) {

//checking if the person alredy went in

if ((($worksheet->getCell('G'.$row)->getValue()) == $aInT) or (($worksheet->getCell('G'.$row)->getValue()) == $vInT)) {

//if the person went in

$goingIn = true;

echo "

";

$goingInValue = $worksheet->getCell('F'.$row)->getValue();

echo $worksheet->getCell('D'.$row)->getValue();

echo "

";

echo $worksheet->getCell('F'.$row)->getValue();

echo "

";

echo $worksheet->getCell('G'.$row)->getValue();

echo "

";

for ($erow= $row +1; ; $erow++){

if ($chosenPerson == ($worksheet->getCell('D'.$erow)->getValue()) ) {

if ((($worksheet->getCell('G'.$erow)->getValue()) == $aExT) or (($worksheet->getCell('G'.$erow)->getValue()) == $vExT)) {

$goingExtValue = $worksheet->getCell('F'.$erow)->getValue();

$goingExt=true;

echo $worksheet->getCell('D'.$erow)->getValue();

echo "

";

echo $worksheet->getCell('F'.$erow)->getValue();

echo "

";

echo $worksheet->getCell('G'.$erow)->getValue();

echo "

";

$date1=date_create($goingInValue);

$date2=date_create($goingExtValue);

$diff=date_diff($date2,$date1);

echo $diff->format("%h Val %i Min %s Sek");

$diffFinall= $diffFinall + $diff;

echo "

";

$goingIn = false;

$goingExt = false;

break;

$row=$erow;

}

}

}

}

}

//echo "

";

//echo $worksheet->getCell('D'.$row)->getValue();

//echo "

";

//echo $worksheet->getCell('F'.$row)->getValue();

//echo "

";

//echo $worksheet->getCell('G'.$row)->getValue();

//echo "

";

}

}

echo "

";

echo "Viso:";

echo $diffFinall;

echo "

";

echo "

";

?>

555cfa8b87dffba6cb829e6e6061cc52.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值