¿Como poner un contador regresivo?

Hola, después de mucho buscar en el foro, no he encontrado lo que busco, ni por google, lo que no quiere decir que no esté, pero no lo encuentro.

Me gustaría introducir en mi web (que cuando la suba en un hosting de pago, os la pongo para que me la critiquéis) un contador regresivo hasta una fecha, es decir: un calendario que en lugar de marcar la fecha actual, marque lo que falta hasta determinado día(30 de Mayo de 2009, para ser exactos)

¿Cómo lo debería hacer?
Soy novato en esto y lo puedo demostrar.
Gracias Yaneth, estos dos ya los probé, y no hacían lo que yo quería. Volveré a ponerlos, a ver si es que cometí algun error, y digo algo.
Mil gracias.
Soy novato en esto y lo puedo demostrar.
Espera, espera. Yaneth, creo que me he saltado lo más importante de tu respuesta:
PHP o Java ¿?
No entiendo del todo bien esto.
Quiero poner en mi index.html el dichoso contador. ¿Puedo hacer copy-paste de los códigos que hay en el enlace que me pasaste?
Soy novato en esto y lo puedo demostrar.
edito: lo siento esto no era, me equivoqué, voy a volver a buscar para encontrar algo que sirva. :wink:
haber, copia esto en donde quieras que aparezca, no se si te gustará porque es muy sencillo.
<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='Año 2008'
var current='Ya estamos en el año 2008!'
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+" "+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=""+dday+ " dias, "+dhour+" horas, "+dmin+" minutos, y "+dsec+" segundos faltan para "+before
setTimeout("countdown(theyear,themonth,theday)",1000)
}
//escribe la fecha hasta la cuenta en formato año/mes/dia
countdown(2008,01,01)
</script>


lo que esta en rojo es lo que puedes variar, lo primero para poner ...faltan no se ke para...aqui lo primero en rojo en este caso 2009, luego lo otro es para poner lo que ponga cuando llege, y lo último para poner la fecha en ese formato la fecha hasta que quieres que cuente, donde pone falta para puedes cambiarlo y poner... yo que se quedan o otra cosa.
si, php o java

son lenguajes de programacion

si lo haces con php, tu servidor debe soportar este lenguaje

si lo haces con java, algunos usuarios o navegadores lo bloquean por seguridad

tu servidor soporta php???

que servidor tienes???

saludos
Voy por partes:
davissbrocen, muchas gracias por tu ayuda, he hecho un copy-paste, y me da error en el script. El programa que uso es el HTML-Kit.

Y Yaneth, tengo alojada la pagina en 000webhost, pero solo temporalmente. Luego me pasare a una de pago, pero aun no se a cual.
Soy novato en esto y lo puedo demostrar.
hola
hasta donde se
ese servidor si soporta el php

asi que puedes usar cualquier lenuguaje que desees

saludos
que extraño a mí me salía perfecto en mozilla e internet xplorer pero ahor no me sale nada, seguire buscando.
Yaneth podrías explicarnos como hacer esto con java o php? esque no tengo idea de ninguno de los dos (salvo por los foros php, jeje)
Bueno, algo he encontrado. Solo un problema; yo de Inglés, poco. Así que el problema que ahora surge es el del idioma, pues creo que las instrucciones que vienen en esta web http://dynamicdrive.com/dynamicindex6/dhtmlcount.htm
son las buenas. De echo, he copiado el codigo y me salen 2 contadores, solo que no se donde configurarlos para que salga la fecha que auiero (30-5-2009)
Soy novato en esto y lo puedo demostrar.
Os pongo la maldita cuenta regresiva, no veáis lo que me ha costado hacerla.
Estaré encantado de indicarle a quién quiera lo que hay que modificar para ajustar la fecha de la cuenta, y los mensajes a mostrar.

Solo una pregunta: ¿Como carajo la alineo a la derecha?



<style style="text/css";>

.lcdstyle{ /*Example CSS to create LCD countdown look*/
background-color:black;
color:#FFD700;
font: bold 16px MS Sans Serif;
padding: 3px;
}

.lcdstyle sup{ /*Example CSS to create LCD countdown look*/
font-size: 80%
}

</style>
<script type="text/javascript">


function cdtime(container, targetdate){
if (!document.getElementById || !document.getElementById(container)) return
this.container=document.getElementById(container)
this.currentTime=new Date()
this.targetdate=new Date(targetdate)
this.timesup=false
this.updateTime()
}

cdtime.prototype.updateTime=function(){
var thisobj=this
this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
}

cdtime.prototype.displaycountdown=function(baseunit, functionref){
this.baseunit=baseunit
this.formatresults=functionref
this.showresults()
}

cdtime.prototype.showresults=function(){
var thisobj=this


var timediff=(this.targetdate-this.currentTime)/1000 //difference btw target date and current date, in seconds
if (timediff<0){ //if time is up
this.timesup=true
this.container.innerHTML=this.formatresults()
return
}
var oneMinute=60 //minute unit in seconds
var oneHour=60*60 //hour unit in seconds
var oneDay=60*60*24 //day unit in seconds
var dayfield=Math.floor(timediff/oneDay)
var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
hourfield=dayfield*24+hourfield
dayfield="n/a"
}
else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
minutefield=dayfield*24*60+hourfield*60+minutefield
dayfield=hourfield="n/a"
}
else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
var secondfield=timediff
dayfield=hourfield=minutefield="n/a"
}
this.container.innerHTML=this.formatresults(dayfield, hourfield, minutefield, secondfield)
setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
}


//Create your own custom format function to pass into cdtime.displaycountdown()
//Use arguments[0] to access "Days" left
//Use arguments[1] to access "Hours" left
//Use arguments[2] to access "Minutes" left
//Use arguments[3] to access "Seconds" left

//The values of these arguments may change depending on the "baseunit" parameter of cdtime.displaycountdown()
//For example, if "baseunit" is set to "hours", arguments[0] becomes meaningless and contains "n/a"
//For example, if "baseunit" is set to "minutes", arguments[0] and arguments[1] become meaningless etc


function formatresults(){
if (this.timesup==false){//if target date/time not yet met
var displaystring=arguments[0]+" days "+arguments[1]+" hours "+arguments[2]+" minutes "+arguments[3]+" seconds left until May 30, 2009 08:00:00"
}
else{ //else if target date/time met
var displaystring="Future date is here!"
}
return displaystring
}

function formatresults2(){
if (this.timesup==false){ //if target date/time not yet met
var displaystring="<span class='lcdstyle'>"+arguments[0]+" <sup>Días</sup> "+arguments[1]+" <sup>horas</sup> "+arguments[2]+" <sup>minutos y</sup> "+arguments[3]+" <sup>segundos</sup></span> ¡¡Para Los Coros!!"
}
else{ //else if target date/time met
var displaystring="" //Don't display any text
alert("¡Todos a la calle! Ya llegaron Los Coros") //Instead, perform a custom alert
}
return displaystring
}

</script>
<body>

<div id="countdowncontainer"></div>


<div id="countdowncontainer2"></div>

<script type="text/javascript">


var currentyear=new Date().getFullYear()
//dynamically get this Christmas' year value. If Christmas already passed, then year=current year+1
var thischristmasyear=(new Date().getMonth()>=5 && new Date().getDate()>30)? currentyear+1 : currentyear
var christmas=new cdtime("countdowncontainer2", "May 30,"+"2009"+" 8:00:00")
christmas.displaycountdown("days", formatresults2)