1 .
En qué consiste
2 .
Cómo realizarlo
En muchas páginas, atrapadas por la moda
del supuesto fin de milenio, colocan contadores que nos indican lo que queda
para que llegue el año 2000. Te enseñamos cómo lo hacen.
En qué consiste
Si cambias la fecha de tu ordenador y vuelves
a cargar esta página, verás que la frase de arriba cambia. Esto
es síntoma inequívoco de que dicha frase está escrita por
medio de un programa que se ejecuta en tu ordenador. Por un script.
Cómo realizarlo
Necesitaremos dos cosas para realizar este truco.
La primera es colocar en el lugar de nuestras páginas donde deseemos que
se escriba la cuenta atrás una llamada a la función que se encargará
de escribirlo:
<P><SCRIPT LANGUAGE="Javascript">
<!--
escribirCuentaAtras();
// -->
</SCRIPT></P>
La segunda, como os podéis imaginar, es
escribir dicha función. El código es el siguiente:
function escribirCuentaAtras() {
var fechaActual = new Date();
var fecha2000 = new Date("January 1, 2000");
var tiempoRestante = fecha2000.getTime() - fechaActual.getTime();
var dias = Math.floor(tiempoRestante / (1000 * 60 * 60 * 24));
if (dias > 1)
document.write("Quedan " + dias + " días para el año 2000")
else if (dias == 1)
document.write("Sólo queda un día para el año 2000")
else if (dias == 0)
document.write("Esta noche llega el apocalipsis")
else
document.write("Pero... ¿todavía funcionan los ordenadores?");
}
Lo primero que hace esta función es crear
instancias del objeto Date.
La fecha actual se crea sin aportar ningún parámetro al
constructor, es decir, se crea igualandolo a lo bruto con
new Date(). Esto consigue que la fecha creada
contenga el día y la hora actuales.
La fecha del 1 de enero del año 2000 se crea llamando al constructor con
un parámetro que permita identificar la fecha que deseamos crear. Javascript
permite más de una manera de hacerlo; en este caso lo que hacemos es pasarle
un único argumento de tipo cadena que contiene la fecha expresada en inglés.
También podríamos escribir new Date(año, mes, dia),
por ejemplo, con los tres parámetros expresados en números.
Lo siguiente que hacemos es restar ambas fechas. Para eso utilizamos el método
getTime() que devuelve el número de milisegundos transcurridos
desde las 0:00 horas del 1 de enero de 1970. La razón de tan extraña
manera de convertir una fecha a un número (que se pueda sumar y restar
cómodamente) es que el sistema operativo Unix también lo
hace así. Las cosas raras se mantienen. Una vez que tenemos ambas fechas
convertidas a números, las restamos y convertirmos el resultado, de modo
que éste esté expresado en días, y no en milisegundos.
Por último, nos queda escribir el resultado. Para ello utilizaremos
el famoso método document.write(). Lo que vayamos a escribir
depende del número de días que queden. No resultaría muy
elegante decir que quedan -123 días para el año 2000, por poner
un ejemplo.
Últimos comentarios
Últimos 5 comentarios
corrección (24/10/2006)
Por
La instancia de la variable "fechaActual", no es la correcta, ya que allí se está considerando las horas, minutos y segundos, por eso que hace variar algunas veces el resultado. Para comparación de dias la instancia correcta sería:
var now = new Date();
var fechaactual = new Date(now.getYear(),now.getMonth(),now.getDate());
Tengo la solucion (15/10/2004)
Por
Hola, no se si han resuelto la cuestion, pero el problema esta en los años biciestos como es este 2004. Saludos!
dias, minutos y segundos (20/02/2002)
Por
como pueda hacer para que ademas de los dias me de las horas, los minutos y los segundos ?
Gracias
Bien (02/12/2001)
Por
Esta bien, aunque el año 2000 ya paso a la
historia, se puede usar para otras fechas.
mt72.
Conchale (09/10/2001)
Por
Fui yo la les envié la felicitación por este código, pero a veces me calcula con un dí más o con un día menos yo estoy comparando los resultados con los que arroja Excel, por favor si pueden ayudarme escríbanme