+1

Diferença entre duas Horas

criado por Alcione Ferreira em 24/11/2004 2:09pm
Script desenvolvido para calcular a diferença entre duas horas distintas.
Data Autor Changelog Download
24/11/2004 2:09pm Alcione Ferreira - Versão 0.0.1
30/11/2004 9:05am Alcione Ferreira Versão 0.1.0 Versão 0.1.0
04/12/2004 1:00pm walter Versão 10.0 Versão 10.0
12/02/2005 12:46am walter Versão 10.0 Versão 10.0
23/03/2005 12:39pm Alcione Ferreira Versão 1.0.0 Versão 1.0.0
14/04/2005 9:30am Cássio H. Jorge Versão 2.0 Versão 2.0
19/12/2006 5:32am Paulo Versão 3.0 Versão 3.0

Comentários:

Mostrando 1 - 10 de 13 comentários
Paulo disse:
Bom,

Pela urgência acabei fazendo eu mesmo...hehehe...

Está funcionando perfeitamente, já estou usando nos meus sistemas, está tudo OK.

abraços,
fiquem com Deus,
Paulo.
19/12/2006 5:34am (~17 anos atrás)

Paulo disse:
Olá Alcione,

Essa função está me ajudando muito, mas deparei com uma situação e queria ver se não tinha como você implantar isto, é o seguinte:

- Além de fazer esse cálculo de horas, eu precisava ter algumas horas de desconto e outras de acréscimo, será que teria como fazer algo do tipo :

function Calcula_Dif_Hora($inicio,$fim,$data,$dataf,$dif,$horamenos='00:00',$horamais='00:00')

Onde o cálculo seria o cálculo como está sendo que subtrairia a $horamenos e acrescentaria a $horamais.

Desde já agradeço e te parabenizo pelo execelente trabalho.

Abraços e fica com Deus,
Paulo.
19/12/2006 4:04am (~17 anos atrás)

lm-servenet disse:
nao consegui fazer funcionar nenhum deles :(
09/02/2006 8:35am (~18 anos atrás)

estarei analisando essa parte, mas o estranho é que aki funciona.

Prometo que quando dispor de tempo irei publicar outra versão com as devidas correções

Falowse

Alcione Ferreira
Sombra®
101080
08/04/2005 4:06pm (~19 anos atrás)

Desculpe a demora mas ainda nada...acredito que o problema esteja na função da data no tracho abaixo...
if (!is_array($data)){
if (strstr("/",$data{4})){
$data = explode("/",$data);
}
else if (strstr("/",$data{2}))
{
$aux = explode("/",$data);
$data = array ($aux[2],$aux[1],$aux[0]);
}
} else {
if (strlen($data[0]) == 2){
$data = array ($data[2],$data[1],$data[0]);
}
}
08/04/2005 3:59pm (~19 anos atrás)

Prezado Augusto.!

A Versão 1.0.0 soh não irá funcionar com diferenças negativas, tipo assim:
data inicial = (hoje)
hora final = 2 minutos atrás

Mas se tiver a diferença de 1 segundo ele mostra.

Fiz o teste.

Atenciosamente,

Alcione Ferreira
Sombra®
101080
31/03/2005 6:40am (~19 anos atrás)

augustor4 disse:
Acho que quando o tempo é menor que 1 minuto o script não funciona. Peguei a versão 10.0 que é a que me interessa... Estou correto?
31/03/2005 1:32am (~19 anos atrás)

Veja a versão atual 1.0.0, pode ser que seja a final mas tem uma coisa ainda pra testar, mas acho que faz com que o teste que vc porpos seja findado!

Falows
23/03/2005 12:41pm (~19 anos atrás)

Galera...mais uns ajustes...
vc precisa primeiro verificar se a hora está no padrão 00:00 ou 24:00 assim
if ($fim=='00:00:00') $fim='24:00:00';
depois no cálculo precisa ver qual é maior para não dar valor negativo...
if ($time_fim > $time_inicio) {
$t[0] = floor(($time_fim - $time_inicio) / 60);
$t[1] = floor((($time_fim - $time_inicio) / 60) / 60);
} else {
$t[0] = floor(($time_inicio- $time_fim) / 60);
$t[1] = floor((($time_inicio - $time_fim) / 60) / 60);
}
Seria interessante pensarmos na hipótese de acumular horas para mais de um dia, por exemplo hora inicial 23/03/2005 09:00 e final 25/03/2005 02:00...um pequeno desafio.
[]´s
Cássio
23/03/2005 6:14am (~19 anos atrás)

Pessoal...fiz uma pequena alteração, pois na comparação de horas < 10 não incluia o "0" então inclui o seguinte...
após a linha $h = $t[1];
incluir if ($h < 10) $h = "0$h";
[]´s
Cássio
22/03/2005 11:56am (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)