Как суммировать время php или js?

224
14 февраля 2018, 10:28

Здравствуйте, есть массив:

array(4) {
[0]=>
string(8) "00:05:23"
[1]=>
string(8) "06:23:00"
[2]=>
string(8) "05:00:00"
[3]=>
string(8) "05:40:00"
}

Получаю его и з базы таким способом:

$getAllTime = $db->query("SELECT * FROM `wt_action` WHERE user_id = '$id'");
$time = [];
foreach ($getAllTime as $i) {
    $time[] = $i['summ_work_time'];
}

Как мне суммировать все это в время ? Или на php или в javascript.

Тоесть мне надо суммировать вот это время:

00:05:23
06:23:00
05:00:00
05:40:00

= 17:08:23

p.s. массив будет пополнятся новым временем.

Answer 1

Можно преобразовать часы и минуты в секуды, потом сложить эти суммы между собой, а после - вычислить сумму всех секунд в массиве $time, и передать эту сумму в конструктор класса DateTime

$time = [ 
    '00:05:23',
    '06:23:00',
    '05:00:00',
    '05:40:00'
];
$time = array_map(function($t) {
    [$h, $i, $s] = explode(':', $t);
    return ($h*3600) + ($i*60) + $s;
}, $time);
$timestamp = array_sum($time);
$time = new DateTime("@$timestamp");
echo $time->format('H:i:s');

Результат:

17:08:23
READ ALSO
Замена старого файла в local storage на новый

Замена старого файла в local storage на новый

Очень долго искал способ вставить SVG-спрайт из отдельного файла в HTML код, чтобы при этом он оставался чистым, а спрайты вызывались по ID из этого...

251
Как реализовать это в Bootstrap4?

Как реализовать это в Bootstrap4?

Нужно реализовать расположение двух элементов как на скриншоте при этом желательно чтобы они были в одном rowЛоготип всегда должен быть по центру,...

250
Не выводится текст через админку Wordpress

Не выводится текст через админку Wordpress

Добрый деньПрошу помочь мне справиться с проблемой

205