PHP Checkin / Расчет времени расчета

У меня есть массив данных в php — он не идеален, но это пример одного из них.

"time_in": [
"22:17:23",
"22:17:26",
"22:17:27",
"22:17:28",
"22:18:54",
"22:19:28",
"22:20:49",
"22:20:52",
"22:22:17",
"22:31:13"],
"time_out": [
"22:17:33",
"22:18:47",
"22:18:52",
"22:18:52",
"22:19:12",
"22:22:08"]

Мне нужно выяснить формулу для расчета $total_time_in а также $total_time_out

Я знаю, что если есть запись «зарегистрировано» и нет записи «извлечено» для конечного элемента, то это может потенциально сказать, что они были проверены в течение длительного времени — но это нормально на данный момент — Если, конечно, ответ не может решить эту проблему, закрыв ее в полночь.

Помощь будет оценена.

0

Решение

Начиная с PHP 5.3, вы можете использовать объект DateTime, он обеспечивает простой способ работы с датой и временем. Поэтому для начала вы можете использовать статический метод createFromFormat ниже, зная, что результирующий объект будет инициализирован на текущую дату.

$a =  DateTime::createFromFormat('H:i:s', '22:17:23');
$b =  DateTime::createFromFormat('H:i:s', '22:17:33');
$interval = $a->diff($b);
echo $interval->format('%R%s second(s)');
echo "\n"

Далее, если у вас есть переменная $ in = [‘t1’, t2 ..] и $ out, вы просто можете сделать это следующим образом:

$k = 0;
array_map(function($inputTime) use ($out, &$k) {
$a =  DateTime::createFromFormat('H:i:s', $inputTime);
if (!isset($out[$k])) {
return;
}
$b =  DateTime::createFromFormat('H:i:s', $out[$k] );
$interval = $a->diff($b);
echo $interval->format('%R%s second(s)');
echo "\n";
$k++;
},$in);

Надеюсь, что это может помочь;)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]