php 计算小时数,PHP计算总小时数未得到准确答案
发布日期:2022-02-03 04:38:30 浏览次数:11 分类:技术文章

本文共 1816 字,大约阅读时间需要 6 分钟。

我试图根据一个人在什么时候

in

,

break

,

resume

out

.

我有这些数据:

$data[0]['type'] = 'in';

$data[0]['created_at'] = '2019-02-01 08:01:52';

$data[1]['type'] = 'break';

$data[1]['created_at'] = '2019-02-01 12:00:40';

$data[2]['type'] = 'resume';

$data[2]['created_at'] = '2019-02-01 13:00:39';

$data[3]['type'] = 'break';

$data[3]['created_at'] = '2019-02-01 14:29:21';

$data[4]['type'] = 'resume';

$data[4]['created_at'] = '2019-02-01 14:29:50';

$data[5]['type'] = 'break';

$data[5]['created_at'] = '2019-02-01 14:29:53';

$data[6]['type'] = 'resume';

$data[6]['created_at'] = '2019-02-01 14:30:00';

$data[7]['type'] = 'break';

$data[7]['created_at'] = '2019-02-01 14:30:09';

$data[8]['type'] = 'resume';

$data[8]['created_at'] = '2019-02-01 14:30:12';

$data[9]['type'] = 'out';

$data[9]['created_at'] = '2019-02-01 18:01:51';

$hours = 0;

$minutes = 0;

foreach($data as $key => $d){

$d['created_at'] = str_replace(" ","T",$d['created_at']);

if($d['type'] == 'in' || $d['type'] == 'resume'){

$workingTime = new DateTime($d['created_at']);

}

if($d['type'] == 'break' || $d['type'] == 'out'){

$date2 = new DateTime($d['created_at']);

$diff = $date2->diff($workingTime);

$tempHours = $diff->h;

$tempHours = $tempHours + ($diff->days*24);

$hours += $tempHours;

$tempMin = $diff->i;

$minutes += $tempMin;

}

}

if($minutes == 60){

$hours += 1;

echo $hours. " hours and 00 minutes";

}else if($minutes > 60){

$hours = $hours + floor($minutes/60);

$minutes = $minutes % 60;

echo $hours. " hours and ".$minutes." minutes";

}else{

echo $hours. " hours and ".$minutes." minutes";

}

我得到的总数是:

8 hours and 57 minutes

,

而正确的答案应该是

08 hour and 59 minutes and 21 seconds

.

我认为我没有得到正确答案的原因是因为在我的代码中,计算中没有包括秒。

有人能帮我计算出正确的答案吗?

非常感谢您的帮助!谢谢您。

我得到了所有这些差异的总和:

$a = break - in

$b = break - resume

$c = out - resume

Then: $total_time = $a + $b + $c

如果不清楚,请告诉我。谢谢您。

转载地址:https://blog.csdn.net/weixin_30596151/article/details/115570532 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php37t芯片,PHP45N0Q10T
下一篇:linux中mysql创建表空间,linux下mysql8搭建

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月05日 00时18分55秒