Sign in to follow this  
demoncrawler

[ajuda] Prox. Atualização

Recommended Posts

Olá amigos do ScriptBrasil. Sou um usuario novo aqui e estou desenvolvendo um site que usa muitos sistemas em PHP. A algum tempo venho estudando sobre PHP e agora estou colocando em pratica tudo que estou aprendendo.

Porém, tem um codigo que a algum tempo eu venho querendo achar e não consigo de jeito nem um. já procurei em todos os sites sobre PHP e forum.

O codigo é, o de PROXIMA ATUALIZAÇÃO EM XX HORAS. Igual tem no site da WMONLINE.COM.BR . Pois o meu site vai ser um site que vai ter muitas atualizações e assim eu precisava deste codigo. Se alguém conhecer esse codigo e tiver a bondade de poder me passar, ficarei muito grato. se souberem algum site, ou pelo menos como chama essa função eu já agradeço de coração mesmo!

E que a algum tempo procuro este codigo mas infelizmente não acho.

Eu aguardo retorno.

Aguardo retorno

E desde de já agradeço.

Atenciosamente,

Ricardo

Share this post


Link to post
Share on other sites

Eu faria tudo na base dos segundos...

<?php
$agora = date("U");
$data_base = date("U", strtotime("2007-05-04 22:00:00"));/*Aqui estou supondo que a atualização vai ocorrer dia 04/05/2007*/
$diferenca = $data_base-$agora;
echo $diferenca."<BR>";
/*A $diferença é a quantidade de segundos que existem entre o $gora e a $data_base que é quando o site vai ser atualizar*/
?>

Sabendo quantos segundos existem entre 2 datas eu consigo determinar o tempo do modo que quiser...

Note que lá eles ainda utilizam imagens para representar o tempo, mas isso dá pra fazer usando switch, if/else... etc..

Share this post


Link to post
Share on other sites

ESerra.

Correto este modo de pensar. também pensei deste jeito.

Porém, neste ' scipt ' é uma CONTAGEM REGRESSIVA, assim que fechar a hora/data prevista, simplismente dali em diante ficara 0 ( zero ) correto?

Então, pensando deste modo eu queria alguma coisa que quando chegar no 0 ( zero ) novamente, que volte ao 24 horas, igual tem ao site do WMONLINE.

Quero isso apenas para mostrar que as atualizações do meu site ocorrem as 09:00 Hrs ( por exemplo ).

Então, embora este ' script ' seja bom, não é muito funcional para mim, porque eu preciso de contagem regressiva todos os dias, pois vai ser um site atualizado todos os dias.

sem mais delongas.

Obrigado pela ajuda ESerra, se puder me ajudar novamente, eu aguardo retorno.

sem mais.

Ricardo

Share this post


Link to post
Share on other sites

É apenas um exemplo, no caso na linha:

$data_base = date("U", strtotime("2007-05-04 22:00:00"));

Basta a parte correspondente a data (2007-05-04 22:00:00) ser alterada pelo próprio PHP, no caso você vai ter que fazer algo do tipo:

$testa_hora = date("H");
if ($testa_hora >= 21){
$data_prox = date("Y-m-d",strtotime("+1 day"));
$data_prox = "$data_prox 21:00:00";
}else{
$data_prox = date("Y-m-d");
$data_prox = "$data_prox 21:00:00";
}

Explicando, o cara testa a hora de execução do script se for antes das 21 (já que você disse que o site vai ser atualizado nesse horário), simplesmente a data é pega normalmente, contudo, se a hora for igual ou superior a 21 horas ai a data é incrementada de 1 dia, pois nesse caso a atualização do site já ocorreu e a próxima só vai ocorrer no outro dia...

Então no caso, você substitui 2007-05-04 22:00:00 por $data_prox e isso torna o script automático...

Share this post


Link to post
Share on other sites

ESerra.

Então me passe o codigo completo agora, como você faria, eu testei algumas coisas aqui porém sem muito sucesso.

Me passe o codigo inteiro, quer vêr se entendo melhor o codigo com ele em funcionamento, pois assim ficou meio complicado.

Vlw pela ajuda até o momento!

Share this post


Link to post
Share on other sites

nada a ver com você demoncrawler, é que cada dia o pessoal pede mais as coisas prontas e não apenas as duvidas de programação ou de um pedaço do codigo com problemas

mas ai é com o Eserra passar..

no meu ponto de vista o Forum é para ajuda nas duvidas ou até para contratar alguém para desenvolver um sistema ou script

Desculpe, não resisti :)

Share this post


Link to post
Share on other sites

@ jissa

Eu mexi no codigo, fiz algumas alterações.

Mais apenas queria vêr se ficou algo parecido com o que o ESerra falo ali em cima.

Não to pedindo um codigo por não soube fazer, apenas pedi para vêr se a idéia dele bateu com a minha.

Share this post


Link to post
Share on other sites

Coloca ai o seu resultado final do script... o que eu passei já é a totalidade do script, basta juntar tudo no mesmo arquivo e alterar as variáveis de acordo com o que eu disse...

Ps.: Concordo com você Jissa.

Share this post


Link to post
Share on other sites

@ ESerra:

Até o momento está assim

<?php
$agora = date("U");
$data_base = print date('H', strtotime(sprintf('today 16 hours -%d hours', date('H'))));
$diferenca = $data_base-$agora;
echo $diferenca."<BR>";
?>

sem muito sucesso.

se puder me ajudar, eu agradeço ESerra!

Share this post


Link to post
Share on other sites

Porque você simplesmente não junta as 2 partes que eu postei?

Share this post


Link to post
Share on other sites

ESerra:

<?php

$testa_hora = date("H");

if ($testa_hora >= 21){

$data_prox = date("Y-m-d",strtotime("+1 day"));

$data_prox = "$data_prox 21:00:00";

}else{

$data_prox = date("Y-m-d");

$data_prox = "$data_prox 21:00:00";

}

?>

juntei os seus codigos e o que você falo.

E até agora está assim, mais a parte fico toda branca.

Não sei que erro deu.

Share this post


Link to post
Share on other sites

Engraçado, se eu olho nuns posts anteriores, eu vejo isso tudo ai em baixo, coisa que eu não vejo no seu atual código, note que em um dos meus posts eu dei o passo-a-passo pra emendar tudo

<?php
$agora = date("U");
$data_base = date("U", strtotime("2007-05-04 22:00:00"));/*Aqui estou supondo que a atualização vai ocorrer dia 04/05/2007*/
$diferenca = $data_base-$agora;
echo $diferenca."<BR>";
/*A $diferença é a quantidade de segundos que existem entre o $gora e a $data_base que é quando o site vai ser atualizar*/
?>
E
$testa_hora = date("H");
if ($testa_hora >= 21){
$data_prox = date("Y-m-d",strtotime("+1 day"));
$data_prox = "$data_prox 21:00:00";
}else{
$data_prox = date("Y-m-d");
$data_prox = "$data_prox 21:00:00";
}

Share this post


Link to post
Share on other sites

@ ESerra.

Então, ele fica assim

<?php
$agora = date("H");
$data_base = date("H", strtotime("2007-05-04 21:00:00"));/*Aqui estou supondo que a atualização vai ocorrer dia 04/05/2007*/
$diferenca = $data_base-$agora;
echo $diferenca."<BR>";
/*A $diferença é a quantidade de segundos que existem entre o $gora e a $data_base que é quando o site vai ser atualizar*/
$testa_hora = date("H");
if ($testa_hora >= 21){
$data_prox = date("Y-m-d",strtotime("+1 day"));
$data_prox = "$data_prox 21:00:00";
}else{
$data_prox = date("Y-m-d");
$data_prox = "$data_prox 21:00:00";
}
?>

Porém, o horario está dando negativo " -4 "

ele teria que rodar a hora não é?

aguardo retorno.

Share this post


Link to post
Share on other sites

Repetindo a explicação:

Explicando, o cara testa a hora de execução do script se for antes das 21 (já que você disse que o site vai ser atualizado nesse horário), simplesmente a data é pega normalmente, contudo, se a hora for igual ou superior a 21 horas ai a data é incrementada de 1 dia, pois nesse caso a atualização do site já ocorreu e a próxima só vai ocorrer no outro dia...
Então no caso, você substitui 2007-05-04 21:00:00 por $data_prox e isso torna o script automático...

E utilizando a simples lógica, o segundo código que eu postei vai antes do primeiro...

Share this post


Link to post
Share on other sites

@ ESerra

Eu mudei, fiz tudo que voce falo, o script deu certo, quando se faz as horas depois da hora atual.

Mais agora eu quis mudar, quis colocar 16:00 Hrs a atualização, ( neste exato momento são 20:30 )

Como faço para quando for por exemplo, 16:00 Hrs ( hora da atualização, o relogio conte como " FALAM 24 HRS PARA PROXIMA ATUALIZAÇÃO " )

O codigo tá funcionando, so falta este pequeno errinho de quando passa a hora da atualização

Share this post


Link to post
Share on other sites

Você define o horário de atualização na variável:

$data_prox = "$data_prox 21:00:00";

Logo:

$data_prox = "$data_prox 16:00:00";

O resultado sempre vai retornar em segundos, para passar para horas divida por 60, obviamente, invariavelmente, o resultado vai dar 17.256 (por exemplo) ai no caso quer dizer que faltam 17 horas e .256 décimos de horas, isso dai são os minutos, se quiser transforma isso para minutos basta fazer regra de três...

Não se esqueça de alterar também:

if ($testa_hora >= 21){

Para

if ($testa_hora >= 16){

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this