1

我正在计算员工的工作时间,需要知道员工是否有额外的工作时间,或者员工是否工作了与其个人资料相对应的总小时数。

例如:

Day From_Hour To_Hour Hs_Worked Extra_time PHP_Return

 1    11:00   19:30   08:30       00:00     00:00
 2    11:30   19:30   08:00      -00:30     23:00
 3    11:00   19:45   08:45      -00:15     23:45
 4    11:00   19:55   08:55      +00:10     00:10

我有所有的值,但是需要计算 Extra_time 并且我对正值没有问题,但是当我试图减去我拥有的更多时间时,php 返回与前一天的等价物。

如何添加和减去只有正时间或负时间的时间(不包括前几天的时间)?

4

1 回答 1

2
$start = DateTime::createFromFormat('H:i', '11:30');
$start->add(new DateInterval('PT8H30M'));
$end   = DateTime::createFromFormat('H:i', '19:30');
$diff = $start->diff($end);
echo $diff->format('%r%H:%I');

演示

这只是在开始时间上增加了 8 1/2 小时,然后得到了与结束时间的差异。

于 2014-04-07T20:08:04.960 回答