Foros del Web » Programando para Internet » Javascript »

Codigo hora y segundos

Estas en el tema de Codigo hora y segundos en el foro de Javascript en Foros del Web. Este codigo recupera los valores de una tabla para saber hora, minutos y segundos. El problema esta en que van sumando bien ( 00, 01, ...
  #1 (permalink)  
Antiguo 10/12/2010, 07:39
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Exclamación Codigo hora y segundos

Este codigo recupera los valores de una tabla para saber hora, minutos y segundos.
El problema esta en que van sumando bien ( 00, 01, 02, 03 ...) pero al llegar a 08, me vuelve a 01. Si al entrar en la pagina esta a 11 segundos, sigue tranquilamente y sin problemas.

Porque recojo los valores de una tabla? Porque necesito la hora real del servidor, y no de la persona que esta visitando la web. (con php muestro hora, minuto y segundos en una tabla)

A alguien se le ocurre cual puede ser el problema??
podeis consultar su funcionamiento en : www.l2kaos.es (a la derecha)

Código:
<script src="js/jquery.js"></script>
<script>
//Cuenta atrás en javascript
tiempo3 = 1; // Tiempo de inicialización para la cuenta atrás

tiempoAux2=tiempo;
function cuentala_atras()
{

     tiempoAux2--;
     if(tiempoAux2 == 0)
     {
          tiempoAux2=tiempo3;
     }
	mihora = parseInt(document.getElementById('horas').innerHTML);
	mimin = parseInt(document.getElementById('min').innerHTML);
	miseg = parseInt(document.getElementById('seg').innerHTML);
	
	miseg=miseg+1;
	if(miseg>59) {
	  miseg=0;
	  mimin=mimin+1;
	}
	if(mimin>59){
	  mimin=0;
	  mihora=mihora+1;
	}
	if(mihora=="23"){
	  mihora="0";
	}
	
	if(miseg<10){
	  document.getElementById('seg').innerHTML = "0"+miseg;
	}
	else {
	  document.getElementById('seg').innerHTML = miseg;
	}
	if(mimin<10){
	  document.getElementById('min').innerHTML = "0"+mimin;
	}
	else {
	  document.getElementById('min').innerHTML = mimin;
	}
	if(mihora<10){
	  document.getElementById('horas').innerHTML = "0"+mihora;
	}
	else {
	  document.getElementById('horas').innerHTML = mihora;
	}
	
/*
	document.getElementById('horas').innerHTML = mihora;
	document.getElementById('min').innerHTML = mimin;
 	document.getElementById('seg').innerHTML = miseg;
*/



}
inter2=setInterval("cuentala_atras()", 1000); // Ejecuto la acción cada segundo
</script>

Última edición por kazike; 10/12/2010 a las 07:57 Razón: Mas info
  #2 (permalink)  
Antiguo 10/12/2010, 08:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Codigo hora y segundos

no estoy segura, pero creo que el problema es la numeración octal, puedes intentar convertilos en decimales
  #3 (permalink)  
Antiguo 10/12/2010, 08:57
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Codigo hora y segundos

CORRECTO !!!
jajaja vaya tonteria ... supongo que tantas horas cara al pc hacen que al final no te fijes en las cosas obvias xD

El fallo es al recoger los valores con parseInt(); lo trata como bit si es menor de 10.
se soluciona facilmente usando parseFloat();

Gracias por tu iluminacion Isabel !

PD: ya podeis verlo funcionando correctamente :)
  #4 (permalink)  
Antiguo 11/12/2010, 06:28
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Codigo hora y segundos

A ver, ampliando un poco la cosa sucede que la función parseInt devuelve un entero, pero si le aplicas un número con un cero adelante, JavaScript creerá que se trata de un número de base 8, en ese sistema de numeración no existe el 8 ni el 9, es ahí donde está el problema. La solución más correcta (aunque funcione) no es sustituir parseInt por parseFloat (acaso es lo mismo un entero y un decimal?), la mejor solución es hacer que parseInt entienda que se trata de un número decimal, de esta manera: num = parseInt(n, 10); el segundo parámetro indica que es un número decimal y ya no habrá problemas con el 8 y el 9. Suerte!

Última edición por ElJavista; 11/12/2010 a las 07:07
  #5 (permalink)  
Antiguo 11/12/2010, 06:38
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Codigo hora y segundos

exacto, aquí una ampliación de los sistemas de numeración que se pueden usar

Etiquetas: segundos
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 23:51.