• 0

[Javascript] Countdown


Question

I was wondering how you could aachieve a javascript countdown between two dates eg:August 26, 2009 14:53:51 and August 29, 2009 14:53:5

in the format:Xdays Xhours:Xminutes:X seconds

Can someone tell me how to?/point me in a direction?/code this?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
I was wondering how you could aachieve a javascript countdown between two dates eg:August 26, 2009 14:53:51 and August 29, 2009 14:53:5

in the format:Xdays Xhours:Xminutes:X seconds

Can someone tell me how to?/point me in a direction?/code this?

Very top hit from entering " javascript countdown to date " in google

http://www.javascriptkit.com/script/script2/count2.shtml

<form name="count">
<input type="text" size="69" name="count2">
</form>


<script>

/*
Count down until any date script-
By JavaScript Kit (www.javascriptkit.com)
Over 200+ free scripts here!
*/


//change the text below to reflect your own,
var before="Christmas!"
var current="Today is Christmas. Merry Christmas!"
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")

function countdown(yr,m,d){
theyear=yr;themonth=m;theday=d
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[m-1]+" "+d+", "+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(dday==0&&dhour==0&&dmin==0&&dsec==1){
document.forms.count.count2.value=current
return
}
else
document.forms.count.count2.value="Only "+dday+ " days, "+dhour+" hours, "+dmin+" minutes, and "+dsec+" seconds left until "+before
setTimeout("countdown(theyear,themonth,theday)",1000)
}
//enter the count down date using the format year/month/day
countdown(2002,12,25)
</script>
<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://javascriptkit.com">JavaScript
Kit</a></font></p>

Link to comment
Share on other sites

  • 0

That appears to use the time from the client machine in the calculation of the difference. What I want is to be able to set the two dates- down to the very second. =S

Link to comment
Share on other sites

  • 0

so you want it to access the timestamp from the server its running for accuracy?

you could modify this to do that from date to date. not sure exactly though

why from a specific date to another? you could use two counters, one time since xx.xx.xx.xx and another to a date like this one

Link to comment
Share on other sites

  • 0

change to

function countdown(yr,m,d,yrstart,mstart,dstart){
theyear=yr;themonth=m;theday=d
futurestring=montharray[m-1]+" "+d+", "+yr
var todaystring=montharray[mstart-1]+" "+dstart+", "+yrstart
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(dday==0&&dhour==0&&dmin==0&&dsec==1){
document.forms.count.count2.value=current
return
}
else
document.forms.count.count2.value="Only "+dday+ " days, "+dhour+" hours, "+dmin+" minutes, and "+dsec+" seconds left until "+before
setTimeout("countdown(theyear,themonth,theday,yrstart,mstart,dstart)",1000)
}
//enter the count down date using the format year/month/day
countdown(2002,12,25,2003,12,25)

something like that, didn't test it though

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.