Я понял, что это будет очень простая проблема, но я нигде не нашел решения.Добавление часов в PHP
Я создаю программу планирования в PHP и mySQL. Сдвиги имеют startTime и endTime, каждый из которых хранится как TIME в mySQL.
Я хочу, чтобы сложить общее количество часов для работника в течение недели, так что я пробовал:
$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».
, что он придумывает и какие значения вы испытываете с началом/завершением? Результат кода должен быть в секундах, поэтому вам может потребоваться разделить на 3600 (количество секунд в час), чтобы получить часы. –
Возможно, вы захотите изучить [TIMEDIFF] (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timediff) – Mike
@JonathanKuhn Я добавил данные к после. Однако это не похоже на вопрос о разделении. –