次の形式のMysqlテーブルshift_defがあります。
+-------------------------------------------------------------------------------+
| id | name | start_time | end_time | description | break |
|-------------------------------------------------------------------------------|
| 101 | Shift1 | 01:03:55 | 06:00:55 | Shift 1 | 1 |
|-------------------------------------------------------------------------------|
| 102 | Shift2 | 06:03:55 | 01:00:55 | Shift 2 | 3 |
+-------------------------------------------------------------------------------+
合計シフト期間を検索します。私は自分のPHPで次のプロセスを実行します。
$shift_time = mysql_query("select start_time, end_time from rpt_shift_def where name ='Shif1'")or die(mysql_error());
while ($row = mysql_fetch_assoc($shift_time))
{
$Total_shift_time = strtotime($row['end_time']) - strtotime($row['start_time']);
$hours=floor($Total_shift_time/3600);
$Total_shift_time-=$hours*3600;
$minutes=floor($Total_shift_time/60);
$Total_shift_time-=$minutes*60;
$seconds=$Total_shift_time;
$Total_shift_time=$hours.":".$minutes.":".$seconds;*/
echo "$Total_shift_time";
echo "</br>";
}
出力は
4:57:0
シフト2で同じことを試してみると、期待される出力は次のようになります。
18:57:0
しかし、出力は
-6:57:0
負の値は、シフト2のend_timeがstart_timeよりも小さいためです。この問題を解決する方法。
誰かが私を助けることができますか?