Buenas, estoy teniendo problemas con una función que encontre para hacer una cuenta atras en javascript.
Explico brevemente lo que necesito hacer y lo que tengo.
Quiero crear una promoción que dure 24 horas desde su inicio. Para ello desde el panel de configuración coge la fecha en la que se crea la promoción, le añade 24 horas y la guarda en la base de datos, y activa la promoción 24 horas.
Desde el panel de promociones mi intención era que recogiera ese tiempo, y mostrara el tipico contador marcha atras de Queda X tiempo para que finalice la promoción, viendo como el contador va marcha atras.
Encontre una función para hacer ese contador, y que calcule en función de la fecha de finalización, el tiempo restante, para poner en el contador. Lo que no soy capaz de encontrar es la manera de hacer esa fecha de finalización la coja en función de los datos que tengo en la base de datos.
Copio el codigo que tengo aqui, y al final pongo unas anotaciones.
Código HTML:
<script type="text/javascript">
function calcula(id, date){
var date = new Date('2012', '11', '11', '21', '45', '50')
var hoy = new Date()
var dias = 0
var horas = 0
var minutos = 0
var segundos = 0
if (date>hoy){
var diferencia=(date.getTime()-hoy.getTime())/1000
dias=Math.floor(diferencia/86400)
diferencia=diferencia-(86400*dias)
horas=Math.floor(diferencia/3600)
diferencia=diferencia-(3600*horas)
minutos=Math.floor(diferencia/60)
diferencia=diferencia-(60*minutos)
segundos=Math.floor(diferencia)
if (minutos < 10)
{
minutos = '0' + minutos
}
if (segundos < 10)
{
segundos = '0' + segundos
}
document.getElementById(id).innerHTML='Queda ' + dias + ' Dia ' + horas + ':' + minutos + ':' + segundos
if (dias>0 || horas>0 || minutos>0 || segundos>0){
setTimeout("calcula(\"" + id + "\")",1000)
}
}
else{
//document.write('Finalizada <br>')
document.getElementById('restante').innerHTML='Queda ' + dias + ' Dia ' + horas + ':' + minutos + ':' + segundos
}
}
</script>
</head>
<script type="text/javascript">
var date = new Date('2012', '11', '11', '21', '45', '50')
</script>
<body onload="calcula('contador', date)">
<div id="generalp">
<?php include("cabecero.php"); ?>
<div id='contador'></div>
</div>
Como podeis ver la variable de fin de fecha "date" la defino directamente en el javascript poniendo yo unos varoles fijos, esos me gustaria poder cargarlos de la base de datos.
la variable date, en este codigo que encontre la define 2 veces, una dentro del head y otra fuera. Me extraño asi que elimine una de las 2, pero falla en ambos casos. Si elimino la primera, la función carga, me calcula el tiempo que queda, pero este se queda quieto, sin correr. Si elimino la segunda directamente no me carga nada en la función.
Cualquier ayuda o sugerencia sera bienvenida.
Gracias por anticipado!