Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

planetarussas

Diferença entre duas horas

Recommended Posts

Se você vai só subtrair horas (ou seja, não vai ter dia envolvido no meio), o jeito mais fácil é transformar tudo em minutos. Por exemplo:

 

$hora1 = "10:30"; // equivale a 10*60 + 30 minutos

$hora1 = "11:00"; // equivale a 11*60 + 0 minutos

 

Sacou? Aí você subtrai os dois valores e terá a diferença em minutos... se quiser transformar em horas novamente, é só dividir o resultado por 60.

 

Falou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você vai só subtrair horas (ou seja, não vai ter dia envolvido no meio), o jeito mais fácil é transformar tudo em minutos. Por exemplo:

 

$hora1 = "10:30"; // equivale a 10*60 + 30 minutos

$hora1 = "11:00"; // equivale a 11*60 + 0 minutos

 

Sacou? Aí você subtrai os dois valores e terá a diferença em minutos... se quiser transformar em horas novamente, é só dividir o resultado por 60.

 

Falou!

<{POST_SNAPBACK}>

Td bem, mas na hora de transformar em hora novamente, ele da como resultado um numero neste formato: 0.5 para meia hora, 0.25 para 15 minutos, etc...

 

Como eu mostro isso no formato de hora mesmo: 00:30 ou 00:15?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se você dividir por 60 e arredondar para o primeiro inteiro menor ou igual ao resultado da divisão, você terá o número de horas. Aí você pega o resultado total novamente e faz uma divisão modular por 60 pra achar os minutos. Taí um exemplo:

 

PHP
  1. <?php
  2. $diferenca = 330; // valor em minutos (equivale a 5 horas e meia)
  3. echo floor($diferenca / 60) . ":" . ($diferenca % 60);
  4. ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se você dividir por 60 e arredondar para o primeiro inteiro menor ou igual ao resultado da divisão, você terá o número de horas. Aí você pega o resultado total novamente e faz uma divisão modular por 60 pra achar os minutos. Taí um exemplo:

 

PHP

[*]<?php

$diferenca = 330; // valor em minutos (equivale a 5 horas e meia)echo floor($diferenca / 60) . ":" . ($diferenca % 60);?>

<{POST_SNAPBACK}>

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Valeu. agora funcionou, so da um resultado errado quando a hora é entre 23:00 e 02:00, por exemplo. quando pega a meia noite no meio. Mas ja resolveu o meu problema, pois nao trabalho com esse horário.

 

Agora se você puder me ajudar a exibir com php, o resultado da soma de uma coluna do mysql, vai ser melhor ainda. há varios dias to quebrando a cabeça com isso: (somar todas as entradas de uma coluna do mysql) http://forum.imasters.com.br/public/style_emoticons/default/joia.gif .

Compartilhar este post


Link para o post
Compartilhar em outros sites
Agora se você puder me ajudar a exibir com php, o resultado da soma de uma coluna do mysql, vai ser melhor ainda. há varios dias to quebrando a cabeça com isso: (somar todas as entradas de uma coluna do mysql) :joia: .

 

Claro! ^_^

Como está o formato dessa coluna? É este mesmo: "HH:MM"? E como você já tentou fazer?

 

PS: se você vai trabalhar com datas/horas, o ideal é sempre usar campos específicos pra isso (date, datetime, time), pois você pode usar funções nativas do banco de dados, diminuindo os malabarismos com o script depois... :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando o Post estou com o mesmo problema, tenho no meu banco dois campos hora_abertura e hora_fecha e os mesmos econtra-se definido como varchar , e preciso fazer a diferença entre a hora_abertura e hora_fecha e depois uma média entre os chamados abertos e o tempo gasto para resolve-los, estou tentando da seguinte maneira ,mas não estou obtendo resultado.

 

teste_hora.html

<html>
<body>
<form action="teste_hora.php" method="post">
<table width="21%" border="1">
  <tr>
	<td width="51%">Data Inicial</td>
	<td width="49%">Data Final</td>
  </tr>
  <tr>
	<td><input name="data_ini" type="text" size="10" maxlength="10" /></td>
	<td><input name="data_final" type="text" size="10" maxlength="10" /></td>
  </tr>
</table>

</form>
</body>
</html>

 

teste_hora.php

<html>
<body>
<?php 
// '01/07/208' AND '03/07/2008'
 require_once ('config.php');
   mysql_connect($Host, $Usuario, $Senha);
   mysql_select_db($Base);

$dt1 = $_POST["data_ini"];
$dt2 = $_POST["data_final"];
	
$hora = "SELECT * FROM chamados WHERE data_abertura BETWEEN $dt1 AND $dt2 ORDER BY codigo " or die (mysql_error()); //  

$time = mysql_query($hora);

$first_time= @mysql_fetch_object($time);

echo mysql_error();
?>
<table width="54%" border="1">
  <tr>
	<td width="33%">Abertura</td>
	<td width="33%">Fechamento</td>
	<td width="34%">Total</td>
  </tr>
  <tr>
	<td><?php $first_time->hora_abertura;?></td>
	<td><?php $first_time->hora_fecha;?></td>
	<td><?php $dife=(($first_time->hora_abertura)-($first_time->hora_fecha));?></td>
  </tr>
</table>
</body>
</html>

Desde já agradeço a atenção de todos e que Deus abençõe a todos

 

Att.

 

axvier34

 

P.S. Se alguem puder me ajudar a a fazer tb uma média de tempo gato eu agradeceria .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso saber quais são os registros entre 2 datas, por exemplo, todos os clientes que se cadastraram entre 2 datas.

 

Simples vamos usar o BETWEEN.

 

-> SELECT cli_id,cli_nome FROM tb_clientes WHERE cli_dtcadastro BETWEEN ‘2007-08-01′ AND ‘2007-08-10′;

 

Mysql é muito facil nao é?

 

 

 

Fonte: google -> http://talibamartins.wordpress.com/2007/09...-mysql-between/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Renato Siroma Muito Obrigado pela sua atenção, vamos la os campos antes da data conforme você solicita é o campo codigo depois vem data_abertura , data_fecha, hora_abertura, hora_fecha dentre outros campos. agora o BETWEEN eu já estou usando e relamente é simples , mas o que eu realemtne preciso é fazer uma subtração entre as horas (hora_abertura e hora_fecha) , e depois preciso fazer uma média total de tempo gasto entre uma determinada período selecionado pelo usuário.

Desde já agredço a todos e que Deus abenções todos vcs

Att.

axavier34.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.