kradepau 0 Denunciar post Postado Junho 13, 2017 Dentro de uma tabela mysql que tem um campo tempo, e os tempos são salvos minutos exemplo: linha1 00:05 minutos - Linha2 00:15 minutos e por ae vai. eu queria somar esses tempos e dar um echo de quantas horas tem dentro deste campo. Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Luiz 41 Denunciar post Postado Junho 13, 2017 Qual a estrutura desses campos? Dependendo da estrutura dos seus campos isso pode ser uma tarefa extremamente fácil ou extremamente chata! Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 o campo esta string, o banco é mysql e é salvo nele da seguinte forma 00:00 ou exemplo 00:01 minutos Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 13, 2017 https://stackoverflow.com/questions/22681725/how-to-sum-n-number-of-time-hhmm-format Pra evitar o warning q o brother(Pathik Vejani) falou só adicionar... function AddPlayTime($times) { $minutes = 0; Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 6 minutos atrás, gabrieldarezzo disse: https://stackoverflow.com/questions/22681725/how-to-sum-n-number-of-time-hhmm-format Pra evitar o warning q o brother(Pathik Vejani) falou só adicionar... function AddPlayTime($times) { $minutes = 0; Mas como trazer de um while neste caso Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 13, 2017 Pensa comigo. Um retorno do banco de dados é um conjunto de 'linhas' correto? Então a pergunta deveria seria como converter um array mult/soc em um array simples Em outras palavras seu objetivo é fazer isso: $times = array( '00:15' ,'00:45' ,'00:60' ,'00:02' ,'00:02' ,'00:02' ,'00:02' ); Então você deve pesquisar... Ou copiar isso: <?php $tempos = array_fetch_all(); $tempoGasto = array(); foreach($tempos as $tempo) { $tempoGasto[] = $tempo['NOME_TABELA']; } Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 Agora, gabrieldarezzo disse: Pensa comigo. Um retorno do banco de dados é um conjunto de 'linhas' correto? Então a pergunta deveria seria como converter um array mult/soc em um array simples Em outras palavras seu objetivo é fazer isso: $times = array( '00:15' ,'00:45' ,'00:60' ,'00:02' ,'00:02' ,'00:02' ,'00:02' ); Então você deve pesquisar... Ou copiar isso: <?php $tempos = array_fetch_all(); $tempoGasto = array(); foreach($tempos as $tempo) { $tempoGasto[] = $tempo['NOME_TABELA']; } Opa, blz, vou testar oque me passou e pesquisar tambem retorno breve o seu comentario, valeu Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 13, 2017 Qual abstração de Banco se ta usando ai? PDO? mysqli? mysql? Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 Agora, gabrieldarezzo disse: Qual abstração de Banco se ta usando ai? PDO? mysqli? mysql? PDO Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 13, 2017 Fica +/- assim : $horarios = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($horarios); /* $horarios = array( array( 'id' => '1' ,'hora_gasta' => '01:00' ) ,array( 'id' => '2' ,'hora_gasta' => '00:20' ) ,array( 'id' => '3' ,'hora_gasta' => '00:10' ) ); */ $totalTempo = array(); foreach($horarios as $horario) { $totalTempo[] = $horario['hora_gasta']; } print_r($totalTempo); // array('01:00', '00:20', '00:10') Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 2 minutos atrás, gabrieldarezzo disse: Fica +/- assim : $horarios = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($horarios); /* $horarios = array( array( 'id' => '1' ,'hora_gasta' => '01:00' ) ,array( 'id' => '2' ,'hora_gasta' => '00:20' ) ,array( 'id' => '3' ,'hora_gasta' => '00:10' ) ); */ $totalTempo = array(); foreach($horarios as $horario) { $totalTempo[] = $horario['hora_gasta']; } print_r($totalTempo); // array('01:00', '00:20', '00:10') Testando e passo o result daqui a pouco Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 24 minutos atrás, kradepau disse: Testando e passo o result daqui a pouco olhe o print ae pra você ver http://prntscr.com/fjecvz Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 13, 2017 Não meu querido. O Array deveria ser composto por strings simples (tira esse br) O Objetivo é você fazer um array simples assim: $times = array( '00:15' ,'00:45' ,'00:60' ,'00:02' ,'00:02' ,'00:02' ,'00:02' ); print_r($totalTempo) Pois o link que eu dei você deveria olhar a resposta e não a pergunta kkkk Se liga a resposta é essa: function somarTempo($times) { $minutes = 0; // loop throught all the times foreach ($times as $time) { list($hour, $minute) = explode(':', $time); $minutes += $hour * 60; $minutes += $minute; } $hours = floor($minutes / 60); $minutes -= $hours * 60; // returns the time already formatted return sprintf('%02d:%02d', $hours, $minutes); } Você passa um array e ele retorna uma string com a soma de todos. Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 2 minutos atrás, gabrieldarezzo disse: Não meu querido. O Array deveria ser composto por strings simples (tira esse br) O Objetivo é você fazer um array simples assim: $times = array( '00:15' ,'00:45' ,'00:60' ,'00:02' ,'00:02' ,'00:02' ,'00:02' ); print_r($totalTempo) Pois o link que eu dei você deveria olhar a resposta e não a pergunta kkkk Se liga a resposta é essa: function somarTempo($times) { $minutes = 0; // loop throught all the times foreach ($times as $time) { list($hour, $minute) = explode(':', $time); $minutes += $hour * 60; $minutes += $minute; } $hours = floor($minutes / 60); $minutes -= $hours * 60; // returns the time already formatted return sprintf('%02d:%02d', $hours, $minutes); } Você passa um array e ele retorna uma string com a soma de todos. Ok, verificando Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 10 minutos atrás, kradepau disse: Ok, verificando Certissimo, funcionando que uma blz, Muito obrigado Compartilhar este post Link para o post Compartilhar em outros sites
kradepau 0 Denunciar post Postado Junho 13, 2017 3 minutos atrás, kradepau disse: Certissimo, funcionando que uma blz, Muito obrigado Só para entender oque seria '%02d:%02d' Compartilhar este post Link para o post Compartilhar em outros sites