Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal.... gostaria de ajuda para fazer uma contagem regressiva em php.......
//primeiro eu pego duas variaveis que me darão os dados base
$distancia=2;
$velocidade=300; //este é o tempo, em segundos, para cada unidade de distancia acima
$tempo=$distancia$velocidade; /sabemos então que, o tempo total será 10mn, pois 2 vezes 300 segundos é 600 segundos, que em minutos é 10 (600/60=10)*/
/* Bem, agora que eu sei quanto tempo será, como fazer isso no servidor? tpw, será 10 munutos, então exiba na tela a data e a hora em que este tempo vai acabar, ou seja, uma contagem regressiva:
o tempo vai acabar dia 10/08/2012 as 13:58:20h / faltam 52:32:40 h
obs. sei que para exibir este tempo na pagina mudando é em javascript, porem, quando o usuário sair da pagina, quero que este tempo esteja ali certinho sem mudar, acompanhando o servidor.... cada usuário tem sua senha e login.... se precisar de mysql pode ser tambem!
eu já tenho o seguinte codigo:
<?php
$distancia=2;
$velocidade=300;
#Informamos as datas e horários de início e fim no formato Y-m-d H:i:s e os convertemos para o formato timestamp
$dia_hora_atual = strtotime(date("Y-m-d H:i:s"));//aqui eu tenho a garantia de que a hora nunca muda, pois é a do servidor
$dia_hora_evento =strtotime(date("2012-12-20 23:59:59"));/*é esta linha que tenho que mudar, tenho que colocar esta data através de
uma variável, pois não tem como eu saber que data será, é diferente em cada situação!
Teria relação entre as variaveis $distancia e $velocidade.*/
#Achamos a diferença entre as datas...
$diferenca = $dia_hora_evento - $dia_hora_atual;
#Fazemos a contagem...
$dias = intval($diferenca / 86400);
$marcador = $diferenca % 86400;
$hora = intval($marcador / 3600);
$marcador = $marcador % 3600;
$minuto = intval($marcador / 60);
$segundos = $marcador % 60;
#Exibimos o resultado
echo "$dias dia(s) $hora hora(s) $minuto minuto(s) $segundos segundo(s)";
?>
Por favor pessoal! Me ajudem, já estou a mais de 1 ano tentando resolver isso. Se não quiserem ajudar no codigo inteiro, ao menos me dizem que função usar, me de um caminho!
Ps.: Depois que esta parte ficar pronta, ai partimos para a exibição em javascript.
>
Cada usuário terá uma data? Existe um cadastro? Se sim controle isto pelo banco de dados.
estas são as caracteristica:
-
-
-
- A maior parte do jogo **se baseia em "****tempo****"**, ou sejá, tempo **para atacar**, tempo **para comercializar** etc;
- Ex.:digamos que você queira **atacar um jogador**, terá um sistema de cordenada, digamos então que, após **o PHP fazer um certo calculo** descobre que a distancia entre **o "alvo" e você é igual á 2**. E a tropa com que está atacando **anda 300 segundos por campo**. Agora atribuimos os dados em **variaveis** ($distancia=2; e $velocidade=300;);
Observação 1: Se o usuário mudar a data e/ou a hora do pc, não vai modificar este sistema, pois ele tem que pegar a hora no servidor;
**Observação 2:** Se o usuario **deslogar e voltar mais tarde**, **a contagem** tem que ser a mesma, não da onde ele parou, mas no tempo certo, pois ela **nunca para... até chegar a 0(zero), ela fica contando ****mesmo com o usuário deslogado**;
**Observação 3:** Quando **chegar a 0(zero), a contagem desaparece**, e pode exibir uma mensagem;
Agora vou exibir o que seria parte deste script "sonhado":
$distancia=2;
$velocidade=300;
$tempo=$distancia*$velocidade;//600 segundos****
//descobrir quantas horas isso corresponde
$_hora = intval($tempo / 3600);
$_marcador = $tempo % 3600;
$_minuto = intval($_marcador / 60);
$_segundos = $_marcador % 60;
echo "$_dias dia(s) $_hora hora(s) $_minuto minuto(s) $_segundos segundo(s)<br>";Em resumo, todas as ações terão que ser controladas pelo banco de dados. Não tem outra maneira.
>
Em resumo, todas as ações terão que ser controladas pelo banco de dados. Não tem outra maneira.
Você pode dar detalhes? Um exemplo?
Tpw, eu pensei, em armazenar a data futura na banco de dados, assim cada vez que o usuário logar, ela será carregada. Porem, após descobrir quantos segundos vai demorar para o ataque, eu não sei como jogar isso para uma data futura no php. EX.: 600 segundos, como digo que dia e hora será na variável "$dia_hora_evento"? Como jogo estes 600 segundos á frente?
O cálculo do tempo é o mais simples, o MySQL tem o DATE_ADD, o PHP tem o strtotime que dá pra fazer isto também.
>
O cálculo do tempo é o mais simples, o MySQL tem o DATE_ADD, o PHP tem o strtotime que dá pra fazer isto também.
Ok! Vou dar uma pesquisada sobre isso e retorno aqui...Valew pela ajuda!
por favor. Não fechem ainda este tópico! Obrigado.
>
Ok! Vou dar uma pesquisada sobre isso e retorno aqui...Valew pela ajuda!
por favor. Não fechem ainda este tópico! Obrigado.
Ok, deu certo... vlw mesmo cara!!!
ps.:Desculpe a demora!
Cada usuário terá uma data? Existe um cadastro? Se sim controle isto pelo banco de dados.