Jump to content


Photo

Contador De Tempo!


  • Faça o login para participar
11 replies to this topic

#1 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 24/11/2004, 10:26

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... blz...

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; 
} 


blz... 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, blz...(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! ...
xxxxxx...

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!

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 24/11/2004, 10:49

Acredito que seria mais fácil, trabalhar com as datas em formato timestamp (unix).
Klaus Paiva
Conheça também: Taperás

#3 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 24/11/2004, 11:16

humm...
tem como me da alguns exemplos?!

#4 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 24/11/2004, 11:49

Desculpe a pressa, não deu pra fazer a implementação para horas, somente para minutos. Veja:

Attached Files


Klaus Paiva
Conheça também: Taperás

#5 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 24/11/2004, 14:55

po kra, num intendi direito nao...
tipo, eu reescrevi o code pro horario de agora... 15:53:02... e o termino as 16:00:00 hrs... assim:
<?php

  // 13:40
  $horario_final = mktime (16, 00, 0);
  
  // Horário atual
  $horario_atual = time();
  
  // Calculando a diferença
  $diferenca = $horario_final - $horario_atual;
  
  // Calculando os minutos
  $minutos = floor (($diferenca / 60));
  
  // Formatando os minutos (opcional)
  $minutos = ($minutos < 10) ? "0" . $minutos : $minutos;
  
  // Calculando os segundos
  $segundos = $diferenca % 60;
  
  // Formatando os segundos (opcional)
  $segundos = ($segundos < 10) ? "0" . $segundos : $segundos;
  
  // Exibe o resultado
  printf ("Faltam 00:%s:%s para as 16:00!", $minutos, $segundos);
    
?>
mas ai tipo
tipo, ele rodou assim no site:
Faltam 00:65:05 para as 16:00! 

po, ele tinha ki mostrar ki faltavam 7 mins... nao?...
tem como c ver isso pra mim kra? plx!!!!
e si nao for pedir d+, pra vc qdo ver, ve a hora tbm...
tipo, nao precisa ser pra hj nao kra...
qdo c tiver tempo c posta!!!! tranks...


valeus manow!

#6 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 24/11/2004, 16:26

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!

#7 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 25/11/2004, 07:43

Se o seu servidor está com o mesmo padrão do fórum, sem o horário de verão, o horário exibido estava correto. ;)
Klaus Paiva
Conheça também: Taperás

#8 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 26/11/2004, 09:52

blz kra, tipo, eu fiz do meu jeito aki com uma função kra...
tu me ajuda a regular ela?! hehe
tipow, ela funciona, mas tipo, nao ta me mostrando a hora... soh os mins e segs ki faltam pro kra sair... mas eu kero a hora tbm!!! pra saber si o kra ficou mais de 1 hora, ou 2 horas... 2 horas... enfim...

eu to fazendo assim ó:
$h1 = date('h:i:s'); // tempo atual... contando...
$h2 = "11:18:05"; // tempo de saida do kra... jah somado com + 1 hora

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;
}

e tem outra coisinha tbm kra... como ki eu vou fazer pra por a hora da galera ki ta cadastrada no sql nessa funcao, e imprimir na tela o tempo de todos eles contando?...
com o while? sim... mas como????
eu fiquei perdidao!!!
desculpa a incoveniencia, mas sera ki c podia me dar um exemplo?


valeus

#9 Anjo-Negro

Anjo-Negro

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 26/11/2004, 12:42

se eu entendi bem o q vc quer, aí vai.

Não sei como vc está fazendo o refresh, mas contando que o código esteja dentro do refresh.

Penso da seguinte forma. Que o usuário se logue? certo?
Logo após o login, vc joga a hora inicial em uma sessão

<?php
session_start
$h_inicial = data('h').":".date('i').":".date(ssY');
$_SESSION['h_inicial'] = $h_inicial;

Com isso fica guardado a hora inicial...

Não sei aonde vc está colocando a hora para mostrar ao usuário, mas sugiro vc colocar em um iframe no tamanho da hora, pra q o refresh seje mais rápido, ao invés de carregar toda a página.

Na página vc coloca o comando que dá o refresh (num lembro agora qual é) em javascript.
com o seguinte código.
$h_inicial = $_SESSION['h_inicial'];
$h_inicial = explode(":" , $h_inicial);
$hora_restante = (date('h')-$h_inicial[0]).":".(date('i')-$h_inicial[1]):.(date('s')-
$h_inicial[2]);
echo "Brasil $hora_restante";

Isso fará ficar imprimindo a hora restante ao usuário.

caso vc queira q a hora expire e o usuário volte a tela d login

$h_inicial = $_SESSION['h_inicial'];
$h_inicial = explode(":" , $h_inicial);
$hora_restante = (date('h')-$h_inicial[0]).":".(date('i')-$h_inicial[1]):.(date('s')-$h_inicial[2]);
if ($hora_restante < '00:00:00'){unset($_SESSION['h_inicial'];}
echo "Brasil $hora_restante";

Olha, eu num testei não pq aki no trabalho num tenho o apache instalado...
Mas acho q tá tudo certim...
Qualquer dúvida, estamos aí.

#10 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 26/11/2004, 13:42

nao kra, viajou!!! nao eh script de login nao...
eh soh pra conta o tempo todos os usuários da table...

o tempo disponivel deles eh de 1 hora...

#11 Anjo-Negro

Anjo-Negro

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 27/11/2004, 07:22

Então cara, mas eles não se logam?
Se se logarem, tem como vc pegar a hora inicial e fazer efetuar o logoff depois que estou o tempo limite, sacou?!
Agora, se eles não fizerem logon, desconsidere o q eu postei.

#12 patrykrose

patrykrose

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Não informado

Posted 29/11/2004, 07:02

nao, eles nao fazem logon...
:(!

tipow, da uma olhada nesse post aki galera...
tipo, nele os kras lah tao quase conseguindo oq eu kero!

Contador de Tempo

valeus galera!

Braça!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq