【问题标题】:Find the difference between to times and minus an integer找出 to 次和减去一个整数之间的差
【发布时间】:2016-11-26 19:21:28
【问题描述】:

目前我正在创建一个包含时间表信息的表格,我正在尝试显示工作时间减去休息时间。我想知道是否有办法找到开始时间和结束时间之间的时间差,然后减去休息时间。我现在唯一的问题是中断存储为中断分钟数的整数。有没有办法不必将休息时间存储为时间值?

这是我必须显示从开始到结束之间工作的小时数的代码:

<?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 } ?>

【问题讨论】:

标签: php mysql


【解决方案1】:

strtotime() 返回一个 unix 时间戳(自 1970 年 1 月 1 日以来的秒数),所以数学很简单:

$seconds_worked = strtotime($end) - strtotime($start) - ($break_in_minutes * 60);

从那里您可以相对轻松地转换为 h/m/s。

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多