Fórum Contador regressivo - HTML #532789
25/09/2015
0
Tenho um script com um contador regressivo que me mostra quantas horas, minutos, segundos e pentelhezimos de segundos falta para uma determinada data, porém ele faz este cálculo contando até o início do dia, ou seja 00:00h. Gostaria de saber se alguém sabe como posso ajustar para contar até a determinada hora.
Grato.
Script:
<HTML>
<HEAD>
<TITLE>Tempo para o casamento....</TITLE>
</HEAD>
<BODY>
<script language="JavaScript1.2">
var aa = 2015
var mm = 10
var dd = 21
var hh = 09
var mi = 00
function setcountdown(theyear,themonth,theday,hour,minutes) {
yr=theyear;mo=themonth;da=theday
} setcountdown(aa,mm,dd)
var occasion="Casamento"
var message_on_occasion="É hoje"
var countdownwidth='510px'
var countdownheight='200px'
var countdownbgcolor='#ccffe1'
var opentags='<font face="Verdana" size="5" color="#000000">'
var closetags='</font>'
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
var crosscount=''
function start_countdown(){
if (document.layers)
document.countdownnsmain.visibility="show"
else if (document.all||document.getElementById)
crosscount=document.getElementById&&!document.all?document.getElementById("countdownie") : countdownie
countdown()
}
if (document.all||document.getElementById)
document.write('<span id="countdownie" style="width:'+countdownwidth+'; background-color:'+countdownbgcolor+'"></span>')
window.onload=start_countdown
function countdown(){
var today=new Date()
var todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
var todaym=today.getMonth()
var todayd=today.getDate()
var todayh=today.getHours()
var todaymin=today.getMinutes()
var todaysec=today.getSeconds()
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
futurestring=montharray[mo-1]+" "+da+", "+yr
dd=Date.parse(futurestring)-Date.parse(todaystring)
dday=Math.floor(dd/(60*60*1000*24)*1)
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
//if on day of occasion
if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1&&todayd==da){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write (opentags+message_on_occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+message_on_occasion+closetags
return
}
//if passed day of occasion
else if (dday<=-1){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+"Occasion already passed! "+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+"Já passou"+closetags
return
}
//else, if not yet
else{
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+dday+ " days, "+dhour+" hours, "+dmin+" minutes, and "+dsec+" "+occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+dday+ " dias, "+dhour+" horas, "+dmin+" minutos e "+dsec+" segundos para o <b>"+occasion+closetags
}
setTimeout("countdown()",1000)
}
</script>
</BODY>
</HTML>
Iago Melo
Curtir tópico
+ 0Post mais votado
26/09/2015
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec futurestring=montharray[mo-1]+" "+da+", "+yr dd=Date.parse(futurestring)-Date.parse(todaystring)
Veja que a todaystring recebe hora, minuto e segundo, mas a futurestring não.
Troque a future string para:
futurestring=montharray[mo-1]+" "+da+", "+yr+" "+h+":"+m
e lá na linha 14, onde há
yr=theyear;mo=themonth;da=theday
adicione as variáveis de hora e minuto, assim:
yr=theyear;mo=themonth;da=theday;h=hour;m=minutes;
Não testei, mas deve funcionar. Boa sorte.
Daniel Mk
Gostei + 1
Mais Posts
25/09/2015
Iago Melo
Gostei + 0
25/09/2015
Marluce Neves
Gostei + 0
19/07/2016
Ranilson Arruda
function setcountdown(theyear,themonth,theday,hour,minutes) {
yr=theyear;mo=themonth;da=theday
} setcountdown(aa,mm,dd) e transformá-lo assim:
function setcountdown(theyear,themonth,theday,hour,minutes) {
yr=theyear;mo=themonth;da=theday;h=hour;m=minutes;
} setcountdown(aa,mm,dd,hh,mi)Fazendo os ajustes no código de Daniel e esse nessa segunda parte do setcountdown fica 100%.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)