Ir para conteúdo
Fórum Script Brasil

Walbert Costa

Membros
  • Total de itens

    12
  • Registro em

  • Última visita

Sobre Walbert Costa

Walbert Costa's Achievements

0

Reputação

  1. Agradeço a vocês: Durub e MTavares! Muito obrigado!!! Vou tentar e dou um retorno! Abs, Walbert
  2. POST RESOLVIDO Os 2 funcionaram direitinho!!! Muito obrigado a vocês!!! Abs, Walbert
  3. De um cálculo de tempo decorrido que faço recebo o resultado em horas, assim: $resultado_em_horas = 14:23 horas O que eu quero é pegar esse mesmo (14:23) resultado e transformá-lo em minutos e mostrar na variável $resultado_em_minutos , assim: $resultado_em_minutos = xxxx minutos Alguém poderia me ajudar?
  4. Para explicar tudo melhor estou enviando uma tela com o form de entrada e com os resultados abaixo de retorno para que entenda melhor: O código abaixo retorno a imagem acima: ESSE É O CÓDIGO QUE RETORNA A TELA QUE ENVIEI: //Mostra o total de cigarros $totalcigarros = $cigarros; function difDeHoras($hIni, $hFinal) { // Separa á hora dos minutos $hIni = explode(':', $hIni); $hFinal = explode(':', $hFinal); // Converte a hora e minuto para segundos $hIni = (60 * 60 * $hIni[0]) + (60 * $hIni[1]); $hFinal = (60 * 60 * $hFinal[0]) + (60 * $hFinal[1]); // Verifica se a hora final é maior que a inicial if(!($hIni < $hFinal)) { return false; } // Calcula diferença de horas $difDeHora = $hFinal - $hIni; //Converte os segundos para Hora e Minuto $tempo = $difDeHora / (60 * 60); $tempo = explode('.', $tempo); // Aqui divide o restante da hora, pois se não for inteiro, retornará um decimal, o minuto, será o valor depois do ponto. $hora = $tempo[0]; @$minutos = (float) (0) . '.' . $tempo[1]; // Aqui forçamos a conversão para float, para não ter erro. $minutos = $minutos * 60; // Aqui multiplicamos o valor que sobra que é menor que 1, por 60, assim ele retornará o minuto corretamente, entre 0 á 59 minutos. $minutos = explode('.', $minutos); // Aqui damos explode para retornar somente o valor inteiro do minuto. O que sobra será os segundos $minutos = $minutos[0]; //Aqui faz uma verificação, para retornar corretamente as horas, mas se não quiser, só mandar retornar a variavel hora e minutos if (!(isset($tempo[1]))) { if($hora == 1){ return 'Você esse total fuma em um intervalo de ' . $hora . ' Hora.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas.'; } } else { if($hora == 1){ if($minutos == 1){ return 'Você esse total fuma em um intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minuto.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minutos.'; } } else { if($minutos == 1){ return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minuto.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minutos.'; } } } } //Retorna a função acima $diferencatempo = difDeHoras($inicial, $fim); /*O que eu quero agora é o resultado para $intervalo, mas primeiro tenho que extrair do resultado da função acima (que vem assim: Você fuma esse total em um intervalo de 14 Horas e 34 Minutos, ela vem para a variavel: $diferencatempo.) o número total em minutos para aí sim, pegar esse valor e dividir por 16, me retornando o tão esperado $intervalo :: Tá aí o meu problema! Observação: A classificação das variáveis são: ($cigarros = Number), ($inicial = Texto) e ($fim = Texto) Resumindo: O que quero é o resultado para $intervalo que será: $intervalo = ($diferencatempo / $totalcigarros); */
  5. Oi Moderador Durub, Em primeiro lugar, muito obrigado pela sua ajuda!!! Fiz e não deu certo, está vindo resposta "0". Abaixo colo o código para você olhar. O problema é que na resposta da primeira função a resposta vem assim: Você fuma esse total em um intervalo de 14 Horas e 46 Minutos. Aí eu quero que esse resultado seja o valor de (14 x 60 + 46) para transformar tudo em minutos e, então, usar a variavel de numero inteiro que tenho e dividir o total do intervalo em minutos por essa variavel inteira para retornar Qual o período em minutos que a pessoa fuma cada cigarro. Se eu conseguir somente extrair o total de minutos da resposta: "Você fuma esse total em um intervalo de 14 Horas e 46 Minutos." o meu problema estará resolvido por o resto serão operações básicas e eu consigo fazer! De novo, muito obrigado pela sua ajuda!!! Aguardo qualquer ajuda que possa me dar para resolver o problema acima! ----------------CÓPIA DO CÓDIGO--------------------------------- //Mostra o total de cigarros $totalcigarros = $cigarros; function difDeHoras($hIni, $hFinal) { // Separa á hora dos minutos $hIni = explode(':', $hIni); $hFinal = explode(':', $hFinal); // Converte a hora e minuto para segundos $hIni = (60 * 60 * $hIni[0]) + (60 * $hIni[1]); $hFinal = (60 * 60 * $hFinal[0]) + (60 * $hFinal[1]); // Verifica se a hora final é maior que a inicial if(!($hIni < $hFinal)) { return false; } // Calcula diferença de horas $difDeHora = $hFinal - $hIni; //Converte os segundos para Hora e Minuto $tempo = $difDeHora / (60 * 60); $tempo = explode('.', $tempo); // Aqui divide o restante da hora, pois se não for inteiro, retornará um decimal, o minuto, será o valor depois do ponto. $hora = $tempo[0]; @$minutos = (float) (0) . '.' . $tempo[1]; // Aqui forçamos a conversão para float, para não ter erro. $minutos = $minutos * 60; // Aqui multiplicamos o valor que sobra que é menor que 1, por 60, assim ele retornará o minuto corretamente, entre 0 á 59 minutos. $minutos = explode('.', $minutos); // Aqui damos explode para retornar somente o valor inteiro do minuto. O que sobra será os segundos $minutos = $minutos[0]; //Aqui faz uma verificação, para retornar corretamente as horas, mas se não quiser, só mandar retornar a variavel hora e minutos if (!(isset($tempo[1]))) { if($hora == 1){ return 'Você esse total fuma em um intervalo de ' . $hora . ' Hora.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas.'; } } else { if($hora == 1){ if($minutos == 1){ return 'Você esse total fuma em um intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minuto.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minutos.'; } } else { if($minutos == 1){ return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minuto.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minutos.'; } } } } $diferencatempo = difDeHoras($inicial, $fim); //Divisão do número de cigarros pelo tempo decorrido function totalMinutos($hora) { $componentes = explode(":", $hora); /* separa em uma array da forma array(horas, minutos) */ return $componentes[0] * 60 + $componentes[1]; /* multiplica as horas por 60 e soma os minutos para obter o total */ } $intervalo = totalMinutos($diferencatempo);
  6. Olá, tudo bem? Estou com uma dúvida simples no código abaixo e não consigo resolver. A função abaixo me retorna o que eu quero: a diferença entre duas variaveis de horas ($inicial, $fim). Seu colocar, por exemplo: $inicial = 9:30 e $fim = 13:45 retorno o seguinte resultado é: O intervalo é de: 4 Horas e 15 Minutos. O que eu quero agora, e não consigo é: Pegar esse intevalo e transformar em minutos para aparecer na variavel $difminutos. Preciso dessa variável em minutos fora de função para continuar com outros cálculos. Pode me ajudar? //A função que retorna a diferença entre hora inicial e hora final function difDeHoras($hIni, $hFinal) { // Separa á hora dos minutos $hIni = explode(':', $hIni); $hFinal = explode(':', $hFinal); // Converte a hora e minuto para segundos $hIni = (60 * 60 * $hIni[0]) + (60 * $hIni[1]); $hFinal = (60 * 60 * $hFinal[0]) + (60 * $hFinal[1]); // Verifica se a hora final é maior que a inicial if(!($hIni < $hFinal)) { return false; } // Calcula diferença de horas $difDeHora = $hFinal - $hIni; //Converte os segundos para Hora e Minuto $tempo = $difDeHora / (60 * 60); $tempo = explode('.', $tempo); // Aqui divide o restante da hora, pois se não for inteiro, retornará um decimal, o minuto, será o valor depois do ponto. $hora = $tempo[0]; @$minutos = (float) (0) . '.' . $tempo[1]; // Aqui forçamos a conversão para float, para não ter erro. $minutos = $minutos * 60; // Aqui multiplicamos o valor que sobra que é menor que 1, por 60, assim ele retornará o minuto corretamente, entre 0 á 59 minutos. $minutos = explode('.', $minutos); // Aqui damos explode para retornar somente o valor inteiro do minuto. O que sobra será os segundos $minutos = $minutos[0]; //Aqui faz uma verificação, para retornar corretamente as horas, mas se não quiser, só mandar retornar a variavel hora e minutos if (!(isset($tempo[1]))) { if($hora == 1){ return 'Você esse total fuma em um intervalo de ' . $hora . ' Hora.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas.'; } } else { if($hora == 1){ if($minutos == 1){ return 'Você esse total fuma em um intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minuto.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minutos.'; } } else { if($minutos == 1){ return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minuto.'; } else { return 'Você fuma esse total em um intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minutos.'; } } } } //Essa operação me retorna a diferença entre hora inicial e hora final $diferencatempo = difDeHoras($inicial, $fim); //Isso é que eu quero, a diferença acima que vem em horas : minutos, apenas em minutos (O TOTAL EM MINUTOS) $difminutos = ?
  7. Oi Pessoal, Complementando meu post eu só quero do código acima o que está abaixo: O que eu quero é pegar a variável $hora dentro da função, multiplicar por 60, somar com a variavel $minutos e dividir a soma das 2 variaveis por uma outra variavel de numero inteiro. Por exemplo: a resposta da função dará 2 horas e 30 minutos e minha variavel de numero inteiro será 10. Então eu quero é multiplicar 2 horas por 60 e somar com 30 minutos e dividir por 10 o resultado dará : 15 para esse exemplo.
  8. Olá Pessoal, Estou fazendo uma aplicação em uma IDE de PHP e tenho que verificar a diferença entre dois horários do mesmo dia. O código abaixo faz tudo isso. Ele me dá a resposta correta para o problema! O que eu quero agora é dividir o resultado que obtenho da diferença das horas por um núemro inteiro. Explicando: No código abaixo se eu colocar a hora inicial como: 08:15 e a hora final como: 15:23 ele me retornará como resultado do intervalo o valor de 7 horas e 7 minutos. O que eu quero agora é pegar o resultado (7 horas e 7 minutos) e dividir por um número inteiro. Por exemplo dividir por 8. Alguém poderia me ajudar a complementar o código? Se possível com comentário? As variáveis são: Para o número inteiro é: $numero Para o resultado é: $intervalo Agradeço muito a ajuda e muito obrigado a todos do fórum! -------------------------INICIO DO CÓDIGO----------------------------------------- function difDeHoras($hIni, $hFinal) { // Separa á hora dos minutos $hIni = explode(':', $hIni); $hFinal = explode(':', $hFinal); // Converte a hora e minuto para segundos $hIni = (60 * 60 * $hIni[0]) + (60 * $hIni[1]); $hFinal = (60 * 60 * $hFinal[0]) + (60 * $hFinal[1]); // Verifica se a hora final é maior que a inicial if(!($hIni < $hFinal)) { return false; } // Calcula diferença de horas $difDeHora = $hFinal - $hIni; //Converte os segundos para Hora e Minuto $tempo = $difDeHora / (60 * 60); $tempo = explode('.', $tempo); // Aqui divide o restante da hora, pois se não for inteiro, retornará um decimal, o minuto, será o valor depois do ponto. $hora = $tempo[0]; @$minutos = (float) (0) . '.' . $tempo[1]; // Aqui forçamos a conversão para float, para não ter erro. $minutos = $minutos * 60; // Aqui multiplicamos o valor que sobra que é menor que 1, por 60, assim ele retornará o minuto corretamente, entre 0 á 59 minutos. $minutos = explode('.', $minutos); // Aqui damos explode para retornar somente o valor inteiro do minuto. O que sobra será os segundos $minutos = $minutos[0]; //Aqui faz uma verificação, para retornar corretamente as horas, mas se não quiser, só mandar retornar a variavel hora e minutos if (!(isset($tempo[1]))) { if($hora == 1){ return 'intervalo de ' . $hora . ' Hora.'; } else { return 'intervalo de ' . $hora . ' Horas.'; } } else { if($hora == 1){ if($minutos == 1){ return 'intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minuto.'; } else { return 'intervalo de ' . $hora . ' Hora e ' .$minutos . ' Minutos.'; } } else { if($minutos == 1){ return 'intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minuto.'; } else { return 'intervalo de ' . $hora . ' Horas e ' .$minutos . ' Minutos.'; } } } } $diferencatempo = difDeHoras($inicial, $fim); -------------------------FIM DO CÓDIGO-----------------------------------------
  9. Muito obrigado Denner!!! Post RESOLVIDO!
  10. Oi Weuller, Em primeiro lugar, muito, muito, muito obrigado mesmo!!! Ainda estou com problemas pois não sei como utilizar essa função. Tentei de tudo aqui em localhost e nada. Depois de sua função eu fiz isso e não vem a resposta correta: $hIni = "08:30" $hFinal = "08:35" echo difDeHoras($hIni, $hFinal); ou isso: echo difDeHoras("08:36", "09:32"); Também não vem nada! A resposta que vem para os dois códigos é: 9 6 6 Troquei os nomes das minhas variaveis para $hIni e $hFinal (na ordem: o primeiro para a hora inicial e o segundo para a hora final e instruções para o usuário digitar a hora no formato: 00:00 Agora: Como eu faço para chamar corretamente a função para que o resultado correto seja impresso? Abraços, Walbert contato@byjoomla.com.br
  11. Oi Denner, Não é bem isso que quero! Eu já tenho o form e já foi configurado para os campos: $horaini: tipo texto (onde está orientado para o usuário entrar com o dado assim: 00:00) $horafim: tipo texto (onde está orientado para o usuário entrar com o dado assim: 00:00) O que eu quero que o resultado venha em $diferenca_horas já com o resultado correto. Exempo: $horaini: 08:30 $horafim: 14:00 O resultado terá que ser: 05:30 Agradeço sua ajuda!
  12. Olá Pessoal, Sou novo em PHP e me deparo com o seguinte problema: Tenho um form onde o usuário entra com 2 dados de horas. Hora inicial: Aqui ele vai colocar 8:30 Hora final: Aqui ele vai colocar 18:36 Quero que o resultado apareça para ele com a diferença entre esses 2 horários. Vou ter 3 variaveis: horaini: 8:30; horafim: 18:36; diferenca_horas: "aqui virá o resultado em horas e minutos" alguém pode me ajudar nisso? Vi vários exemplos na rede mas não consigo adaptar para meu caso! Muito obrigado!
×
×
  • Criar Novo...