Foros del Web » Programando para Internet » Javascript »

Problema con barra de tiempo restante

Estas en el tema de Problema con barra de tiempo restante en el foro de Javascript en Foros del Web. Estoy intentando que la barra se actualice con el tiempo que queda y su porcentaje, pero no sé porque cambia el ancho del div a ...
  #1 (permalink)  
Antiguo 17/07/2011, 08:03
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Problema con barra de tiempo restante

Estoy intentando que la barra se actualice con el tiempo que queda y su porcentaje, pero no sé porque cambia el ancho del div a "width: 4.36534e+11%"

Código Javascript:
Ver original
  1. function barra(){
  2. var tiempo = new Date();
  3. var segs = "<? echo $segs; ?>";
  4. var am = "<? echo $city['build_'.$encon.'_cons_time']; ?>";
  5. var re = tiempo.getTime()-am;
  6. var cien = re*100;
  7. var por = cien/segs;
  8. document.getElementById('ampliando').style.width=''+por+'%';
  9. }
  10. setInterval("barra()",1000);

Última edición por SeaPirates; 17/07/2011 a las 08:09
  #2 (permalink)  
Antiguo 17/07/2011, 08:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con barra de tiempo restante

Ya que desconozco qué entrega tu código php, sólo puedo decirte que parece que estás intentando operar segundos contra milisegundos (getTime entrega milisegundos).
  #3 (permalink)  
Antiguo 17/07/2011, 08:32
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Problema con barra de tiempo restante

Sí, me di cuenta ese es el problema, intento hacer esto:

Código Javascript:
Ver original
  1. function barra(){
  2. var tiempo = "<? echo time();?>";
  3. var segs = "<? echo $segs; ?>";// El tiempo que tardara en construirse
  4. var am = "<? echo $city['build_'.$encon.'_cons_time']; ?>"; //Recoje de la db cuando empieza a construirse
  5. var re = tiempo-am;
  6. var cien = re*100;
  7. var por = cien/segs;
  8. document.getElementById('ampliando').style.width=''+por+'%';
  9. tiempo++;
  10. }
  11. setInterval("barra()",1000);

Como recojo el tempo desde php, tiene que sumarle, porque si no siempre da el mismo resultado, pero igualmente no me funciona.

Última edición por SeaPirates; 17/07/2011 a las 08:38
  #4 (permalink)  
Antiguo 17/07/2011, 08:47
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 32
Respuesta: Problema con barra de tiempo restante

asi asi.
supongo que tus variables $segs y $encom tendrán un contenido antes de ejecutar el código, otro detalle es el <? es la forma corta de php que tiene que estar activada, revisa eso.....

y porque no recojes el tiempo por javascript y luego el tiempo por la bd (que puede ser una cookie)... digo no¿?
  #5 (permalink)  
Antiguo 17/07/2011, 09:12
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Problema con barra de tiempo restante

Las variables recojen bien el tiempo, y me funciona pero solo 1 vez, porque al recojer el tiempo con php siempre es el mmismo y por tanto realiza los mismos calculos.

He intentado con getTime:

var re = tiempo.getTime()-am;

Pero al sacarlo en milisegundos y la fecha que se guarda con php es unix time(), no cuadra..


PD: He probado asi:

Código Javascript:
Ver original
  1. function barra(){
  2. var tiempo = new Date();
  3. var segs = "<? echo $segs; ?>";
  4. var am = "<? echo $city['build_'.$encon.'_cons_time']; ?>";
  5. var pasar = Math.floor(tiempo.getTime()/1000);
  6. var re = pasar-am;
  7. var cien = re*100;
  8. var por = cien/segs;
  9. document.getElementById('ampliando').style.width=''+por+'%';
  10. }
  11. setInterval("barra()",1000);

Pero no me funciona, me da negativo :S

Última edición por SeaPirates; 17/07/2011 a las 09:33
  #6 (permalink)  
Antiguo 17/07/2011, 10:43
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años
Puntos: 32
Respuesta: Problema con barra de tiempo restante

si puedes explicar, que contiene $segs y $encom, de donde obtiene su contenido y que tipo de contenido es porque allí es donde me pierdo

... si dices que te a funcionado pero te da negativo, multiplicalo por (-1), lo pasa a positivo, y listo
  #7 (permalink)  
Antiguo 17/07/2011, 10:49
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Problema con barra de tiempo restante

Aver, $segs es el numero calculado de segundos que tardará en construirse el edificio, y $encon es la id del edificio que se encuentra ampliando

Etiquetas: barra, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.