Avatar billede clubace Nybegynder
19. februar 2006 - 12:02 Der er 6 kommentarer

countdown script med to cifret nedtælling?

Hejsa eksperter.

Jeg er total scriptnoobie og har netop googlet mig frem til et countdown script der i dage, timer, minutter og sekunder tæller ned til en given dato.

<!--COUNTDOWN-->
<script language="JavaScript1.2">
function setcountdown(theyear,themonth,theday){
yr=theyear;mo=themonth;da=theday
}
setcountdown(2006,02,17)
var occasion=""
var message_on_occasion="WEEKEND!"
var countdownwidth='120px'
var countdownheight='18px'
var countdownbgcolor='E0DFE3'
var opentags='<div style="position:absolute; top:0px; left:0px; width:120; height:18; z-index:1"><font face="Haettenschweiler" color="#06a6a" style="font-size:30px; font-weight:700; cursor:default">'
var closetags='</font></div>'
var montharray=new Array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","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 occasio
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
}
else if (dday<=-1){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+"WEEKEND!"+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+"WEEKEND!"+closetags
return
}
else{
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+dday+" : "+dhour+" : "+dmin+" : "+dsec+""+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+dday+" : "+dhour+" : "+dmin+" : "+dsec+""+closetags
}
setTimeout("countdown()",1000)
}
</script>
<ilayer id="countdownnsmain" width=&{countdownwidth}; height=&{countdownheight}; bgColor=&{countdownbgcolor}; visibility=hide><layer id="countdownnssub" width=&{countdownwidth}; height=&{countdownheight}; left=0 top=0></layer></ilayer>

Scriptet fungerer fint efter hensigt. Dog ønsker jeg, når netællingen når under 10 i de fire tidsfaktore (dage, timer, min. og sek.), at den efterfølgende nedtælling vises med to cifre (fx. 03:07:05:02).
Er der nogen der er i stand til, at udtænke en ændring af ovenstående script der vil fremkalde den ønskede nedtællingsform, eller måske kender til et andet script der har den efterspurgte funktion?

På forhånd tak.

Mvh Ace.
Avatar billede plazm Nybegynder
19. februar 2006 - 12:05 #1
crosscount.innerHTML=opentags+dday+" : "+(dhour<10?"0"+dhour:dhour)+" : "+(dmin<10?"0"+dmin:dmin)+" : "+(dsec<10?"0"+dsec:dsec)+""+closetags
Avatar billede clubace Nybegynder
19. februar 2006 - 12:27 #2
goddam plazm :D .. det virker ferfekt!

1000 tak for dit hurtige svar :)
Avatar billede plazm Nybegynder
19. februar 2006 - 12:44 #3
og så lige et svar ;)
Avatar billede tjp Mester
19. februar 2006 - 12:54 #4
Lidt tilføjelser for en god ordens skyld! ;-)

Dag skal vel også have foranstillet 0:
crosscount.innerHTML=opentags+(dday<10?"0"+dday:dday)+" : "+(dhour<10?"0"+dhour:dhour)+" : "+(dmin<10?"0"+dmin:dmin)+" : "+(dsec<10?"0"+dsec:dsec)+""+closetags

Og skal denne linje vel også rettes:
document.countdownnsmain.document.countdownnssub.document.write(opentags+dday<10?"0"+dday:dday)+" : "+(dhour<10?"0"+dhour:dhour)+" : "+(dmin<10?"0"+dmin:dmin)+" : "+(dsec<10?"0"+dsec:dsec)+""+closetags)
Avatar billede tjp Mester
19. februar 2006 - 13:18 #5
Der var lige en smutter i den sidste:
document.countdownnsmain.document.countdownnssub.document.write(opentags+(dday<10?"0"+dday:dday)+" : "+(dhour<10?"0"+dhour:dhour)+" : "+(dmin<10?"0"+dmin:dmin)+" : "+(dsec<10?"0"+dsec:dsec)+""+closetags)
Avatar billede plazm Nybegynder
19. februar 2006 - 19:37 #6
tja, jeg udelod med vilje dag, da det oftest ikke bliver skrevet med foranstillet 0, men det var samtidigt ret åbenlyst, hvad han selv skulle ændre :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester