Com o fim do mundo próximo, vou mostrar a vocês neste post como fazer um contador regressivo utilizando PHP e AJAX. Para que o contador fique dinâmico, vamos usar a biblioteca jQuery para fazer a requisição AJAX.
Vamos aos códigos:
index.html
<!doctype html>
<html>
<head>
<title>Contador em PHP</title>
<script type=”text/javascript” src=”jquery.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){// Requisicao AJAX
var requisicao = function(){
$.ajax({
url: “contador.php”
}).done(function(resultado){
// Exibe o resultado no elemento com ID contador
$(“#contador”).html(resultado);
});
};// Executa a requisicao com intervalo de 100ms
setInterval(requisicao, 100);});
</script>
</head>
<body>
<p>Faltam <span id=”contador”></span> segundos para o fim do mundo!</p>
</body>
</html>
No código acima apenas fizemos uma requisição AJAX para a página contador.php, que contém o resultado do nosso contador.
contador.php
<?php
// Define as datas
$data_atual = date(‘d-m-Y h:i:s’);
$data_final = date(‘2012-12-21’);// Converte as datas para a hora UNIX e realiza o calculo da diferenca
$diferenca = strtotime($data_final) – strtotime($data_atual);// Exibe o resultado se ele for positivo. Caso seja negativo, exibe 0.
echo ($diferenca >= 0) ? $diferenca : 0;?>
No código acima, convertemos as duas datas para a hora UNIX, realizamos o cálculo da diferença entre elas e por fim exibimos o resultado.
Você pode baixar os códigos deste post AQUI.
Até a próxima 😉
Muito bom o Código amigo, me ajudou bastante, eu estava cometendo um erro básico que dá até vergonha de comentar, mas quando estamos cansados acontece, eu acho. Muito obrigado por compartilhar, fico grato.
Ótimo POST, fiz umas alterações para o meu caso, dividi os segundos em dias, horas e minutos. Muito Obrigado!
= 0) ? $diferenca : 0;
?>
Amigo poderia me informar como conseguistes esta conversão em dias, horas e minutos?
Basta utilizar as funções date() e strtotime(). 😉
Ótimo post ajudou pra caramba.
Mais fiquei na dúvida tem como estilizar ex: 00:00:00 o tempo?
Desde já muito obrigado.
Para isto, utilize a função date.
Onde $timestamp_unix é o valor da hora Unix.
Como faco para colocaR ou puxar uma funcao em php quando o contador chegar a 0?
Você pode verificar o valor da variável $diferenca no arquivo contador.php. Quando o valor dela for 0, execute a função desejada.
Boa Tarde,
Quero exibir o contador várias vezes na mesma página, mas a contagem dos segundos só mostra uma vez por página, vc sabe me dizer o motivo?
aqui um exemplo:
http://offday.url.ph/contador/ofertas_sc2.%20copy%201.php
Muito obrigado!
Para a exibição de múltiplos contadores, você terá que configurá-lo para tal.
Ótimo artigo obrigado me ajudou muito pois estava para lançar uma plataforma e não fluia as ideias haha obrigado irmão