我认为这将是一个非常简单的问题,但我在任何地方都没有找到解决方案。
我正在用 PHP 和 mySQL 创建一个调度程序。班次有一个 startTime 和 endTime,每一个都在 mySQL 中存储为 TIME。
我想将一周内员工的总小时数相加,所以我尝试了:
$shifts = [...] //shifts for the week
$totalTime = 0; //I've also tried "0:0:0" and strtotime("0:00:00");
for($d = 0; $d < 7; $d++){
$start = strtotime($shift_types[$shifts[$d]]['ShiftType']['start_time']);
$end = strtotime($shift_types[$shifts[$d]]['ShiftType']['end_time']);
echo date("g:ia", $start) . ' / ' . date("g:i a", $end);
$totalTime += ($end-$start);
}
}
问题在于 $totalTime 没有达到任何合理的数字。我认为这是因为 PHP 将 $totalTime 视为自 1970 年以来的时间戳,这将导致完全不同的结果。我真正想要的只是一个净小时值,它不需要任何与它相关的日期值。
我应该提到我正在显示总时间
echo date("g:i", $totalTime);
当它以 9:30:00 开始和 16:15:00 结束运行时,它显示“1:45”。当没有触摸总时间时(因为没有班次),它显示“7:00”。