Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2010, 16:10
AitorLopez
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Reloj en Javascript

Hola amigos. El otro dia, uno de vosotros me dio un codigo para mostrar un reloj a partir de una fecha dada. Vaya por delante que, aunque estoy en ello, de momento no tengo ni idea de javascript.
He estado modificando el codigo para que, la fecha que hay que darle, se la pueda dar en php. Lo he probado en una hoja aparte con el codigo que luego os pondré debajo y funciona perfecto.

El problema es cuando meto este codigo en la hoja donde tiene que ir. En principio, el mismo codigo, no funciona. No da ningun error pero el reloj no se ve.

Al final del codigo, hay una llamada que es window.onload=crono;, si lo modifico y le pongo window.onload=crono();, es decir, le añado los parentesis, ya funciona en la hoja donde tiene que ir, pero el navegador me dice que hay lista de errores.

¿Sabeis a que puede ser debido este comportamiento. Os pongo el codigo entero que funciona solo, pero en la hoja donde tiene que ir no.

<html>
<head>
<?php
$dia = 17;
$mes = 05;
$ano = 2010;
$hora = 22;
$minutos = 40;
$segundos = 30;
?>

<script type="text/javascript">
function crono(){
var dia = <?php echo $dia;?>, mes = <?php echo $mes;?>, anio = <?php echo $ano;?>, hora = <?php echo $hora;?>, minutos = <?php echo $minutos;?>, segundos = <?php echo $segundos;?> //aquí es donde has de establecer la fecha final. Recuerda que enero es el mes 0, así el 5 es junio.
var fechaFinal = new Date(anio,mes,dia,hora,minutos,segundos)

var hoy = new Date()
diferencia = hoy.getTime() - fechaFinal.getTime();

horas = diferencia/1000/60/60;
horasTotales = parseInt(horas)

minutosFaltan = horas - parseInt(horasTotales)
minutosFaltan2 = minutosFaltan*1000*60*60
minutosFaltan2 = minutosFaltan2/1000/60
minutosTotales = parseInt(minutosFaltan2)

segundosFaltan = minutosFaltan2 - parseInt(minutosFaltan2)
segundosFaltan2 = segundosFaltan*1000*60
segundosTotales = parseInt(segundosFaltan2/1000)

falta = "<div id='calContador'><div id='calCuerpo'>";

if(horasTotales < 10) {horasTotales = "0" + horasTotales;}
if(minutosTotales < 10) {minutosTotales = "0" + minutosTotales;}
if(segundosTotales < 10) {segundosTotales = "0" + segundosTotales;}

horasTxt = horasTotales + ":";
minutosTxt = minutosTotales + ":";
segundosTxt = segundosTotales;

if (Math.abs(diferencia) <= 900) {
contadorCompleto = falta + "</div></div>";
clearInterval(crono);
}
else
{
contadorCompleto = falta + horasTxt + minutosTxt + segundosTxt
setInterval("crono(),1000")
}
document.getElementById('contador_regresivo').inne rHTML = contadorCompleto;
}

window.onload=crono;
</script>
</head>
<body>
<div id="contador_regresivo" style="text-align:center"></div>
</body>
</html>

P.D.: Lo que he marcado en negrita, es el codigo que pongo en la hoja donde tiene que ir