Nimaro 0 Denunciar post Postado Janeiro 11, 2010 Ola a todos, através de um select deste genero: <select id="select_gerar" name="tmp_consultas6"> <option value="0">0</option> <option value="00:15:00">15min</option> <option value="00:30:00">30min</option> <option value="00:45:00">45min</option> <option value="01:00:00">60min</option> <option value="01:30:00">1h30m</option> </select><br></td></tr> Estou a enviar para uma variavel Time() na minha base de dados no mysql. A minha duvida esta se, por exemplo: "00:15:00" representa 15minutos? E eu futuramente irei fazer incrementações de tempo, algo como: "00:45:00" + "00:30:00". A minha duvida está se isto irá dar "01:15:00" ou "00:75:00". Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Janeiro 12, 2010 Se você tá trabalhando hora, existe 75 minutos na hora? Tipo, no formato padrão do horário.. o máximo é 24 horas, 60 minutos, 60 segundos... é claro que se você adicionar 30 minutos em 45 minutos a hora será 01:15:00 Isso se você tiver trabalhando com funções de tempo... não lembro direito com se faz adição de tempo.. não lembro direito como se soma os horários, mas dê uma pesquisada no google, "somar hora php" irá te retornar vários resultados.. lembrando que a função time, não irá te retonar o horário 00:00:00, e sim uns números assim: 151515151 não lembro como é.. mas fazendo o que eu disse, você irá conseguir.. flw -------------------------------------------------------- To sem nada pra fazer, criei uma função pra você: <?php function somarMinutos($minutos){ //Hora atual que você quer somar! $time = date("H:i:s");//Hora:Minutos:Segundos $somaHora = strtotime("$time + $minutos minutes"); $resultado = date("H:i:s",$horaNova); return $resultado; } if(isset($_POST['tmp_consultas6'])){ echo somarMinutos($_POST['tmp_consultas6']); } ?> <select id="select_gerar" name="tmp_consultas6"> <option value="0">0</option> <option value="15">15min</option> <option value="30">30min</option> <option value="45">45min</option> <option value="60">60min</option> <option value="130">1h30m</option> </select><br></td></tr> Nem testei a função, mas acho que tá correta... e veja que eu alterei o valor do select, pq irá somar apenas os minutos, e não precisa fazer aquilo tudo... é mais rápido assim.. do outro jeito ainda iria fazer explode, etc.. depois é só adaptar do jeito que quiser.. Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Janeiro 12, 2010 Olha pareceu simples a forma como estavas a dizer, mas eu tentei fazer e nao estou a tirar grandes resultados: Estou a fazer desta forma: echo $horaInicial = $dados['hora_comeco']; $soma_hora = $horaInicial; echo ("||"); echo $horaIncr = $dados['horas_trabalho']; echo ("||"); $soma_hora += strtotime($horaIncr); echo ("||"); echo "Soma: " . date ("H:i:s", $soma_hora); $horaInicial -----> 09:00:00 $horaIncr --------> 02:00:00 echo "Soma: " . date ("H:i:s", $soma_hora); --------> Soma: 02:00:09 :/ Conseguem ajudar-me nisto do Time, para conseguir fazer as somas que pretendo? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
visitante_xp 0 Denunciar post Postado Janeiro 12, 2010 Usa MKTIME()... Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Janeiro 12, 2010 de que forma uso o mktime(), consegues dizer? para o meu caso como faria para somar 2 tempos? Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Janeiro 12, 2010 de que forma uso o mktime(), consegues dizer? para o meu caso como faria para somar 2 tempos? Amigão tente este exemplo que fiz abaixo: <?php $time1 = array('hora'=>'00','min'=>'15','sec'=>'00'); $time2 = array('hora'=>'01','min'=>'30','sec'=>'13'); $soma = date("H:i:s" ,mktime(($time1['hora']+$time2['hora']),($time1['min']+$time2['min']),($time1['sec']+$time2['sec']),0,0,0)); echo $soma; ?> Espero ter ajudado http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Janeiro 12, 2010 Use as funções strtotime e strftime, é a forma mais simples de fazer isso: function time_sum( $hora1 , $hora2 ){ $hora1 = strtotime( $hora1 ); $hora2 = strtotime( $hora2 ); return strftime( '%H:%M:%S' , $hora1 + $hora2 - 1263261600 ); } var_dump( time_sum( '00:45:00' , '00:30:00' ) ); //01:15:00" var_dump( time_sum( '10:45:00' , '00:15:00' ) ); //11:00:00 var_dump( time_sum( '23:00:00' , '01:00:00' ) ); //00:00:00 var_dump( time_sum( '00:45:00' , '23:15:00' ) ); //00:00:00 Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Janeiro 12, 2010 João Batista Neto já consigo ver uma luz ao fundo do tunel :) Mas as contas nao parecem bem :/ Olha ve como fiz sff: echo $horaInicial = $dados['hora_comeco']; echo $horaIncr = $dados['tempo_intervalo']; echo $hora1 = strtotime( $horaInicial ); echo $hora2 = strtotime( $horaIncr ); echo strftime( '%H:%M:%S' , $hora1 + $hora2 - 1263261600 ); Fiz 1 teste com $hora1 = "09:00:00" e $hora2 = "00:15:00" e ele deu-me "07:15:00" Fiz a seguir outro so com valor no $hora1 = "09:00:00" e deu-me 07:00:00 Ele esta a reconhecer 09:00:00 como 07:00:00 :/ Depois fiz uma soma de $hora2 + $hora2, onde $hora2 = "00:45:00" e ele deu-me "23:30:00"...:/ O problema estará no valor "1263261600" que colocas-te??? que nao entendi muito bem de onde vem.... Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Janeiro 12, 2010 Bem... tive de andar a alterar o valor até encontrar 1 que funcionasse... encontrei :) -----> 1263254400 Só espero que seja mesmo isso. Obrigado mais 1 vez Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Janeiro 13, 2010 Se ainda precisar, re-fiz a função e é muito mais simples! Acabei de precisar de uma função dessas... testei e funcionou beleza, é fácil de entender.. <?php function somarMinutos($minutos){ return date("H:i:s", strtotime("+ $minutos minutes")); } if(isset($_POST['tmp_consultas6'])){ echo somarMinutos($_POST['tmp_consultas6']); } ?> <select id="select_gerar" name="tmp_consultas6"> <option value="0">0</option> <option value="15">15min</option> <option value="30">30min</option> <option value="45">45min</option> <option value="60">60min</option> <option value="130">1h30m</option> </select><br></td></tr> Compartilhar este post Link para o post Compartilhar em outros sites