目前我正在创建一个包含时间表信息的表,我正在尝试显示工作时间减去休息时间。我想知道是否有办法找到开始时间和结束时间之间的时间差,然后减去休息时间。我现在唯一的问题是中断存储为中断的分钟数的整数。有没有办法做事情而不必将休息存储为时间值?
这是我必须显示开始和结束之间工作小时数的代码:
<?php while($row = $approvedTimes->fetch()){ ?>
<tr>
<td><?php echo $row['userFirst'] . " ". $row['userLast']; ?></td>
<td><?php echo $row['companyName']; ?></td>
<td><?php echo date('Y-M-d',strtotime($row['timeDate'])); ?></td>
<td><?php echo date("h:i a",strtotime($row['timeStart'])); $start = new DateTime($row['timeStart']); ?></td>
<td><?php echo date("h:i a",strtotime($row['timeEnd'])); $end = new DateTime($row['timeEnd'] ); ?></td>
<td><?php echo $row['timeBreak'] . " Min."; $break = $row['timeBreak']; ?></td>
<td><?php $hours = $start->diff($end); echo $hours->format('%h hours %i min.'); ?></td>
</tr>
<?php } ?>
答案 0 :(得分:3)
strtotime()
返回一个unix时间戳(自1970年1月1日起的秒数),因此数学很简单:
$seconds_worked = strtotime($end) - strtotime($start) - ($break_in_minutes * 60);
从那里你可以相对容易地转换成h / m / s。