GARANTIR DESCONTO

Fórum Contador regressivo - HTML #532789

25/09/2015

0

Bom dia.
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

Iago Melo

Responder

Post mais votado

26/09/2015

Repare as linhas 56, 57 e 58:
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

Daniel Mk
Responder

Gostei + 1

Mais Posts

25/09/2015

Iago Melo

Editei o post e deixei o script inteiro. Caso queiram usá-lo ele esta funcionando, só tem aquele detalhe do horário se alguém souber me ajudar. Valew...
Responder

Gostei + 0

25/09/2015

Marluce Neves

Vou guardar pra mim até solução aparecer, para estudos.
Responder

Gostei + 0

19/07/2016

Ranilson Arruda

O ajuste do Daniel Mk está correto mas falta ajustar o código:

 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%.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar