2016-07-22 2 views
-2

現在、タイムシート情報を保持するテーブルを作成していますが、作業時間から休憩時間を差し引いて表示しようとしています。私は開始時間と終了時間の差を見つけて、休憩時間を差し引く方法があるのだろうかと思っていました。今私が持っている唯一の問題は、ブレークがブレークされた分の整数として格納されていることです。時間の値としてブレークを保存する必要がないことを行う方法はありますか?時間とマイナス整数の差を求めよう

これは私が時間数を表示しなければならないコードでは、開始と終了の間で働いていた:

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

すでに回答済みです。http://stackoverflow.com/questions/5463549/subtract-time-in-php –

答えて

3

strtotime()は、UNIXタイムスタンプ(月1970分の1からの秒)を返すので、数学は簡単です:

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

そこから、比較的簡単にh/m/sに変換できます。