Ir para conteúdo

POWERED BY:

Arquivado

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

MadPatryk

Contador de tempo

Recommended Posts

galera, estou com uma pekena duvidazinha basica, eu to fazendo um sistema de controle de laboratorios, eh igual a um controle de lan house... tipo, dai, o usuário pode ficar 1 hora utilizando o computador dos laboratorios...

 

tipo, eu puxo a hora do servidor pra inserir a hora em que o individuo entrou...

eu faço o select:

//select$qryTempo = mysql_query("select substring(now(),9,2)||'/'||substring(now(),6,2)||'/'||substring(now(),1,4) as data, substring(now(),12,8) as hora");// fetch_row$Tshow = mysql_fetch_row($qryTempo);

dai eu puxo o tempo em ki o kra entrou por $Tshow[hora]... dai vai gravar o registro da hora em que ele entrou no mysql... beleza...

 

dai eu faço uma função pra somar a hora + 1...(tempo no qual o usuário pode ficar no lab, 1 hora...)

assim:

 

function somahora($str,$value){ //$str = data no fomato(HH:MM:SS) //$value = a quantidade de horas que ele vai somar 	$hora = substr($str,0,2); 	$min = substr($str,2,3); 	$seg = substr($str,5,3); 	$retorno = $hora+$value; return $retorno . $min . $seg; }

 

beleza... e gravo isso no mysql... como $show[f_tempo]...

 

agora, eu to com um probleminha...

como eu faço pra imprimir a hora na tela, contando o tempo do kra...

ex, eu to fazendo o seguinte... eu puxo a hora do servidor pelo $Tshow[hora]... dai ele vai ficar contando a hora do server na pagina, beleza...(ah sim, ps: a pagina tem refresh automatico...)

dai pra mostrar o tempo ki falta pro kra sair, eu fiz uma subtração assim:

 

$t_saida = $Tshow[hora];

$t_saida -= $show[f_tempo];

vou explicar oq acontece...

o Tshow[hora] puxa a hora atual do servidor, logo, ele vai ficar contando a hora no site... dai eu subtraio pela hora de saida do kra... dai ele vai ter ki me retornar o valor diminuido.... tipo, a hora de agora eh 10:17:05 e a hora ki o kra entrou eh de 09:18:05... dai eu subtraio os dois valores dai ele vai me retornar ki faltam 59mins pro kra sair...

 

resolveu?... nao!

 

prq?...

prq ele nao me retornou a hora em formato completo... ele simplesmente me retornou um 1! ...

f***...

 

dai vem minha pergunta...

eu vou ter ki fazer outra função pra subtrair a hora?...

alguem me ajuda plx!!!!!!!!!! to apanhando desse troço!!!!!!!!

 

ah tipo, si possivel, coloque tudo em uma função soh pra facilitar!!!

e si nao for pedir demais!!! me da um exemplo de como vou fazer isso funcionar!!! prq, alem de tudo... ainda tem o meu whilezinho pra puxar todos os usuários cadastrados!!!!!

 

 

valeus galera!

abração!

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez esta função o ajude:

PHP [/tr][tr]

$h1 = "10:17:05";

$h2 = "09:18:05";

 

function hora($h1,$h2)

{

$t1 = split(':',$h1);

$t2 = split(':',$h2);

$dia = date("d");

$mes = date("m");

$ano = date("Y");

$times1 = mktime($t1[0],$t1[1],$t1[2],$mes,$dia,$ano);

$times2 = mktime($t2[0],$t2[1],$t2[2],$mes,$dia,$ano);

$sub = $times1-$times2;

$div = $sub / 60;

return $div;

}

echo hora($h1,$h2);

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

po kra, a funcao pra formatar a hora tipo 00:00:00 nao funcionou nao...ele me retorna soh a hora ki falta... nao os mins e segs...ve pra mim isso por favor!!!valeus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, eu to tentando fazer... eu fiz assim ó:

 

<?$conn = mysql_connect(localhost,root);$dbsel = mysql_select_db(teste,$conn);$qryTempo = mysql_query("select substring(now(),9,2)||'/'||substring(now(),6,2)||'/'||substring(now(),1,4) as data, substring(now(),12,8) as hora");// fetch_row$show = mysql_fetch_array($qryTempo);$f_hora = "17:14:50";$a_hora = date('h:m:s');function somahora($str,$value){ //$str = data no fomato(HH:MM:SS) //$value = a quantidade de horas que ele vai somar $hora = substr($str,0,2); $min = substr($str,2,3); $seg = substr($str,5,3); $retorno = $hora-$value; return $retorno . $min . $seg; } echo somahora($f_hora,$show[hora]);?>

soh ki ele nao me retorna os segundos exatos ki faltam...

o prq eu sei, mas eu nao sei fazer com ki conte os segundos e minutos ki faltam tbm...

 

help me plx!

 

p.s: moderadores, nao eh flood isso nao, eu postei 2x, prq o post eh grande... si fosse soh uma coisinha, eu editaria...

 

 

valeus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta esse aqui então:

PHP [/tr][tr]

function hora($h1,$h2)

{

$t1 = split(':',$h1);

$t2 = split(':',$h2);

$dia = date("d");$mes = date("m"); $ano = date("Y");

$times1 = mktime($t1[0],$t1[1],$t1[2],$mes,$dia,$ano);

$times2 = mktime($t2[0],$t2[1],$t2[2],$mes,$dia,$ano);

$sub = $times1-$times2;

return date("i:s",$sub);

}

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo kra, ainda nao ta me retornando a hora, soh mins e segs... po, tem como tu ve ai pra mim mano?...

desculpa pela incoveniencia!! mas eu to precisando mto saber disso!!!

 

EDIT: kra, eu to tentando fazer, puxando a hora do servidor pra ir contando qdo der o refresh... dai to fazendo assim ó:

 

$conn = mysql_connect(localhost,root);$dbsel = mysql_select_db(teste,$conn);$qryTempo = mysql_query("select substring(now(),9,2)||'/'||substring(now(),6,2)||'/'||substring(now(),1,4) as data, substring(now(),12,8) as hora");// fetch_row$show = mysql_fetch_array($qryTempo);$h1 = $show[hora]; //date('h:m:s');$h2 = "07:55:00";function hora($h1,$h2){$t1 = split(':',$h1);$t2 = split(':',$h2);$dia = date("d");$mes = date("m"); $ano = date("Y");$times1 = mktime($t1[0],$t1[1],$t1[2],$mes,$dia,$ano);$times2 = mktime($t2[0],$t2[1],$t2[2],$mes,$dia,$ano);$sub = $times1-$times2;return date("i:s",$sub);}echo hora($h1,$h2);echo "<p> horario atual: ".$show[hora];
mas ele nao ta me retornando o tempo estimado pro kra sair... e sim ta contando o tempo como se fosse um relogio comum... como si eu tivesse puxando a hora do servidor e soh... nao ta contando, eu subtraindo a hora do servidor menos a hora de entrada do usuario... n sei prq...

 

EDIT2: esquece oq eu disse sobre nao estar contando!!! eu dei mole... eu tava contando com o horario de entrada do kra... nao o de saida... mas tipow, tem um pekeno problema... qdo chega em 00:00 o tempo do kra, ki eh pra regressivamente contar negativamente... da erro... nao sei prq...

eu fiz um teste com 2 usuários...

 

e o erro ki da eh esse ó:

Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in c:\arquivos de programas\apache group\apache\htdocs\teste_3.php on line 24[b]usuário 1:[/b][b]usuário 2:[/b] 03:44 (tempo pra restante... 3 mins e 44 segs)
e tipo, tu ta usando funcao date... po, com ano, mes e dia... ta meio estranho... tem certeza ki eh isso mesmo?

tipow, si nao for pedir d+, tem como fazer tudo com a hora do servidor?

 

prq tipo, tem maquinas aki, ki a hora esta errada, e fazendo pelo date ou time, eu acho ki vai babar!!! gheheheh, e pelo sql, vai puxar a hora do servidor, dai nao tem chororo!!! hehehe

 

por favor kra, me ajuda ai, to precisando mto saber dessa parada... ta f***!!! desculpa mesmo pela incoveniencia... mas eh ki eu preciso muito! muito mesmo!

 

valeus kra!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre a função, passei alguma coisa que pudesse te clarear em algo... o lance é você tentar ir arrumando de acordo com suas necessidades.

 

tenta agora assim:

PHP [/tr][tr]

function hora($h1,$h2)

{

$t1 = split(':',$h1);

$t2 = split(':',$h2);

$dia = date("d");$mes = date("m"); $ano = date("Y");

$times1 = mktime($t1[0],$t1[1],$t1[2],$mes,$dia,$ano);

$times2 = mktime($t2[0],$t2[1],$t2[2],$mes,$dia,$ano);

$sub = $times1-$times2;

 

if ($times1 > $times2 )

{ $datex = date("i:s",$sub); }

else

{ $datex = '- '.date("i:s",abs($sub)); }

return $datex;

}

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

fico beleza kra... mas tu erro num lance...

ou inves de

if ($times1 > $times2 ){ $datex = date("i:s",$sub); }else{ $datex = '- '.date("i:s",abs($sub)); }return $datex;}

seria:

 

if ($times1 > $times2 ){ $datex = '- '.date("i:s",$sub); }else{ $datex = date("i:s",abs($sub)); }return $datex;}

dai ele vai retornar a hora negativa qdo o kra passar do tempo!

 

mas tipo kra, soh essa ultima coisa por favor!!!

pra fazer a hora?... ainda soh ta contando os mins e segs...

tem como fazer contar a hora tbm?...

 

prq tipow, si o kra ficar por mais de 2 hrs no laboratorio.... teria como saber...

 

 

valeus kra!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

e mais uma coisinha kra, alem dessa minha duvida de cima, de por pra contar a hora tbm... tipowcomo ki eu vou fazer pra contar o $h1(hora de saida) de todos os usuários da table e imprimir na tela isso?! nusseu to apanhando feio aki!!!!valeus kra!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

[up]...

 

?????????????

entao kra, isso aqui é uma gambi que deve ser o q quer:

PHP [/tr][tr]

$h1 = "10:17:05";

$h2 = "10:17:04";

 

function hora($h1,$h2)

{

$t1 = split(':',$h1);

$t2 = split(':',$h2);

$dia = date("d");$mes = date("m"); $ano = date("Y");

$times1 = mktime($t1[0],$t1[1],$t1[2],$mes,$dia,$ano);

$times2 = mktime($t2[0],$t2[1],$t2[2],$mes,$dia,$ano);

$sub = $times1-$times2;

$hora = abs($t1[0] - $t2[0]);

if (($times1 > $times2 ) || ($times1 == $times2))

$datex = date("$hora:i:s",$sub);

else

$datex = '- '.date("$hora:i:s",abs($sub));

return $datex;

}

echo hora($h1,$h2);

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum...

eu vo da uma testada aki veio!

 

EDIT:putz kra, eu testei aki, e ta dando erro kra...

tipow:

1:41:52Horário Atual: 15:44:08
o horario atual eh 15:44:08

eu setei o horario de saida pra 16:26:00

 

dai ele deveria me retornar soh os mins, tipow 00:44:08 certo? soh ki nao ta funfando...

 

 

e tem umas perguntas pra fazer...

tipo, essas aqui ó:

if (($times1 > $times2 ) || ($times1 == $times2)) //prq aki nao tem {// e prq dessa || e desse code => ($times == $times2) ??$datex = date("$hora:i:s",$sub); // oq acontece aki?else //mesmo do if... prq nao entra as chaves ("{") ??

valeus!

Braça!

Compartilhar este post


Link para o post
Compartilhar em outros sites

po, por favor, me da soh mais essa ajuda kra!!!

estamos quase lah!!!

 

tipo, o erro ki da eh o seguinte, ele nao ta interpretando bem a subtração de horas...

tipow, qdo eu adciono um user, ele me mostra o tempo certinho 1:00:00 restante...

mas qdo atualiza a pagina, dai ele me retorna assim:

1:59:30...

e soh qdo faltam 20 mins pro kra sair ki mostra o tempo em formato correto... tipo : 0:23:30...

eh bem estranho...

mas eh esse o erro ki ta dando...

 

:(

 

EDIT: tipo, achei o erro!

eh prq eu tenho a seguinte hora

$h1 = 15:00:00;

$h2 = 14:59:00;

 

si a subtração eh $hora = abs($t1[0] - $t2[0]);

eh obvio ki vai me restar 1 de resultado!!! e o burro aki(eu) nao pensou nisso!!!

 

tipo, 15 - 14 = 1...

dai eh soh adcionar -1 ki vai funfar tranks!!!

tipo

$hora = abs($t1[0] - $t2[0] -1);

 

 

nossa to moh feliz!!!

mto mto mesmo!

 

valeus kra, valeus galera IM!

Braça!

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.