← Desenvolvimento

[PHP] Contagem decrescente baseada em date()??

Lida 4646 vezes

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Boas!!
Ainda não atinei bem com as funções time(), mktime() e strtotime()
e precisava que alguem me explicasse como fazer para mostrar as horas e minutos que faltam para as 00 horas...

Tipo são 8:31 e eu precisava de mostrar isto
"Faltam 3 horas e 29 minutos para as 00 horas."

Quando chegasse a meia noite mostrava:
"Faltam 23 horas e 59 minutos para as 00 horas",

e assim sussecivamente....

Alguem por aí que esteja mais dentro do assunto e me possa explicar como fazer?
 :roll:

Desde já muito obrigado.
Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Já vi isso em javascript, mas em php nunca vi...
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

bem, assim do topo da cabeça, podes fazer assim:

<?
$hora = date("H");$minuto = date("i");
$falta_h=23-$hora;$falta_m=59-$minuto;
echo'Faltam '.$falta_h.' horas e '.$falta_m.' minutos!';
?>

não experimentei, mas acho que dá para o que queres! ;)
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Obrigadão morpheus!  :)

Nem sei como não me lembrei disso!!!  :?
Meti na ideia que tinha de ser algo de complicado e pronto... LoL

Tá fixe, obrigado!
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Deixo aqui o código que criei com isto para o caso de alguem precisar:
Código: [Seleccione]
<?
$hora = date("H");
$minuto = date("i");
$falta_h = 23-$hora;
$falta_m = 60-$minuto;

if ($falta_m=="1")
{
  $txt_m = "minute";
}
else
{
  $txt_m = "minutes";
}

if ($hora=="23")
{
  echo 'Counters will reset in '.$falta_m.' '.$txt_m.'!<br/>';
}
else if ($hora=="22")
{
  echo 'Counters will reset in '.$falta_h.' hour and '.$falta_m.' '.$txt_m.'!<br/>';
}
else
{
  echo 'Counters will reset in '.$falta_h.' hours and '.$falta_m.' '.$txt_m.'!<br/>';
}
?>
Offline

SSPT 
Membro
Mensagens 408 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Substitui:
$falta_m = 59-$minuto;
Por:
$falta_m = 60-$minuto;

Como tens é o countdown para as 23:59 :P
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Deixo aqui o código reduzido:

Código: [Seleccione]

<?
$hora = date("H");
$minuto = date("i");
$falta_h = 23-$hora;
$falta_m = 59-$minuto;

switch($falta_m)  {
case 1: $txt_m = "minute";
break;
default: $txt_m = "minutes";
}

switch($hora) {
case 23:  
echo 'Counters will reset in '.$falta_m.' '.$txt_m.'!<br />';
break;
case 22:
echo 'Counters will reset in '.$falta_h.' hour and '.$falta_m.' '.$txt_m.'!<br />';
break;
default:
echo 'Counters will reset in '.$falta_h.' hours and '.$falta_m.' '.$txt_m.'!<br />';
}
?>
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Citação de: "SSPT"
Substitui:
$falta_m = 59-$minuto;
Por:
$falta_m = 60-$minuto;

Como tens é o countdown para as 23:59 :P


Código alterado  :wink:
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Já que estamos numa de contadores, podem deixar aqui também um contador ou uma espécie de script para alteração com Ano, Meses, Semanas, Dias, Horas, Minutos e Segundos. Falando em espécie de script estou a falar de um script onde caso existisse preenchimento de variável seria incluída na contagem. Eu até tentava fazer mas devido a motivos profissionais tenho o tempo bastante reduzido, portanto faço só a sugestão.
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Citação de: "OFFICER"
Já que estamos numa de contadores, podem deixar aqui também um contador ou uma espécie de script para alteração com Ano, Meses, Semanas, Dias, Horas, Minutos e Segundos. Falando em espécie de script estou a falar de um script onde caso existisse preenchimento de variável seria incluída na contagem. Eu até tentava fazer mas devido a motivos profissionais tenho o tempo bastante reduzido, portanto faço só a sugestão.


Tipo assim?  :wink:
Código: [Seleccione]
<?php
$dia 
1// Dia no futuro
$mes 1// Mês no futuro
$ano 2007//Ano no futuro

// $dias é o número de dias entre o presente e a data futura
$dias = &#40;int&#41;&#40;&#40;mktime &#40;0,0,0,$mes,$dia,$ano&#41; - time&#40;void&#41;&#41;/86400&#41;;

echo "Faltam $dias dias para $dia/$mes/$ano";
?>
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Isso seria uma opção, mas como se faria em javascript que é ter uma data numa variável, por exemplo..dia 30 deste mês e depois o script calcularia quantos meses, dias, horas, minutos, segundos faltam para o tal dia à tal hora.
Offline

cenourinha 
Elite
Mensagens 4094 Gostos 21
Troféus totais: 34
Trófeus: (Ver todos)
Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4

Se eu puser um refresh de 1 em 1 segundo e colocar isso num include ele vai actualizar só a parte que está dentro do include ou a página toda?
Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Acho que vai actualizar toda página.. vou experimentar!!