Foros del Web » Programando para Internet » Javascript »

Reloj con JS

Estas en el tema de Reloj con JS en el foro de Javascript en Foros del Web. Hola amigos foristas. Estoy haciendo con JavaScript y ASP un sistema para medr tiempo de navegación. Consiste en clikear un enlace que se dirige a ...
  #1 (permalink)  
Antiguo 06/03/2003, 16:11
AeSePe1
Invitado
 
Mensajes: n/a
Puntos:
Reloj con JS

Hola amigos foristas.
Estoy haciendo con JavaScript y ASP un sistema para medr tiempo de navegación.
Consiste en clikear un enlace que se dirige a una página que contiene la hora; lo que quiero hacer es que la hora empiece siempre desde cero: 00:00:00, cuando hago click en el enlace, el reloj se activa.
Luego, cuando no navego más, poner un link que haga la función de stop o algo parecido. ¿se puede hacer?
salu2
  #2 (permalink)  
Antiguo 07/03/2003, 02:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola AeSePe1:

Aquí tienes un ejemplo:

Código PHP:
<html>
<
head>
<
script language="javascript" >
var 
minutero 0;
var 
segundero 0;
var 
horario 0;
var 
activo false;

function 
ajuste(n)    {
    var 
salida "";
    if (
10)    salida "0" ;
    else 
salida "" n;
    return 
salida;
}

function 
iniciaReloj()    {
    if (
activo) {alert("Fin cuenta"); location.reload()}
    
activo true;
    
document.digital.boton.value "Terminar...";
    
document.digital.segundo.value ajuste(segundero);
    
document.digital.minuto.value ajuste(minutero);
    
document.digital.hora.value ajuste(horario);
    
setTimeout("ponSegundero()"1000);
}

function 
ponSegundero()    {
    if (++
segundero 59)    {
        
ponMinutero();
        
segundero 0;
    }
    
document.forms.digital.segundo.value ajuste(segundero);
    
setTimeout("ponSegundero()"1000);
}

function 
ponMinutero()    {
    if (++
minutero 59)    {
        
ponHora();
        
minutero 0;
    }
    
document.forms.digital.minuto.value ajuste(minutero);
}

function 
ponHora()    {
    if (++
horario 23)    horario 0;
    
document.forms.digital.hora.value ajuste(horario);
}
</script>

</head>
<body >

<center>
<table>
<form name=digital>
<tr>
<td><input type=text name=hora size=2 value="00" disabled style="border:0" >:</td>
<td><input type=text name=minuto size=2 value="00" disabled style="border:0" >:</td>
<td><input type=text name=segundo size=2 value="00" style="border:0" disabled></td>
</tr>
<tr>
<td colspan=3>
<input type=button name=boton value="inicia Cuenta" onClick="iniciaReloj()">
</td>
</tr>
</table>
</form>
</center>
</body>
</html> 
Espero que te sirva

Saludos
  #3 (permalink)  
Antiguo 08/10/2004, 13:54
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Con div

Estoyu tratando de usar tu código caricatos, pero que no sea en unos INPUT sino en <div>:

var minutero = 0;
var segundero = 0;
var horario = 0;
var activo = false;

function ajuste(n) {
var salida = "";
if (n < 10) salida = "0" + n ;
else salida = "" + n;
return salida;
}

function iniciaReloj() {
activo = true;

var horita_c = ajuste(horario) + ajuste(minutero) + ajuste(segundero);
document.getElementById('horas_c').firstChild.node Value = horas_c;
setTimeout("ponSegundero()", 1000);
}

function ponSegundero() {
if (++segundero > 59) {
ponMinutero();
segundero = 0;
}
document.getElementById('segundos').firstChild.nod eValue = segundos;
setTimeout("ponSegundero()", 1000);
}

function ponMinutero() {
if (++minutero > 59) {
ponHora();
minutero = 0;
}
document.getElementById('minutos').firstChild.node Value = minutos;
}

function ponHora() {
if (++horario > 23) horario = 0;
document.getElementById('horas').firstChild.nodeVa lue = horas;
}

function inicio_contador(){
document.write('<span id="horas_c">')
document.write('<span id="horas">')
document.write ('00</span>')
document.write('<span id="minutos">')
document.write ('00</span>')
document.write('<span id="segundos">')
document.write ('00</span>')
document.write ('</span>')
iniciaReloj();
}



Y para llamarlo donde quiero que este:

<script>
<!--
inicio_contador();
//-->
</script>

Pero me da error:

Tiempo: 0000[object] luego del primer minuto me coloca: Tiempo: 00[object][object]

Me ayudas un poco ?? o mucho ??? jejejeje

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 08/10/2004 a las 14:01
  #4 (permalink)  
Antiguo 08/10/2004, 14:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola tocayo:

Veo alguna irregularidad...

Los nodeValue me parece que no se pueden modificar... si son nodos de texto me parece que habría que crear uno y reemplazar el otro (createTextNode + replaceNode), aunque estás creando la variable "horita_c" y usas "hora_c".

Creo que simplificaría mucho el código cambiar firstChild.nodeValue por innerHTML, además, netscape puede crear nodos vacíos en algunas ocasiones, o sea que tienes que tener cuidado.

Mira esas cosillas, e infórmanos de tus progresos...
Si quieres el código también lo puedo implementar (creo que no tendría problemas) pero creo que es mejor que tú mismo lo intentes.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 11/10/2004, 06:23
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Saludos Caricatos.

Si efectivamente tenía unas inconsistencias en los nombres. Aquí esta como lo deje. Trabaja pero no como debería al 100%.

¿Qué hace mal? imprime primero 00:00:00 pero cuando comienza a contar imprime 00:00:1 luego 00:00:2 luego 00:00:3 y asi siempre.

Acepto ideas.

Este es el código:

Código:
var minutero = 0;
var segundero = 0;
var horario = 0;
var activo = false;

function ajuste(n)    {
    var salida = "";
    if (n < 10)    salida = "0" + n ;
    else salida = "" + n;
    return salida;
}

function iniciaReloj()    {
    activo = true;

	var hora_c = ajuste(horario) + ajuste(minutero) + ajuste(segundero);
	document.getElementById('horas_c').firstChild.nodeValue = hora_c;
    setTimeout("ponSegundero()", 1000);
}

function ponSegundero()    {
    if (++segundero > 59)    {
        ponMinutero();
        segundero = 0;
    }
	document.getElementById('segundos').firstChild.nodeValue = segundero;
    setTimeout("ponSegundero()", 1000);
}

function ponMinutero()    {
    if (++minutero > 59)    {
        ponHora();
        minutero = 0;
    }
	document.getElementById('minutos').firstChild.nodeValue = minutero;
}

function ponHora()    {
    if (++horario > 23)    horario = 0;
	document.getElementById('horas').firstChild.nodeValue = horario;
}

function inicio_contador(){	
	document.write('<span id="horas_c">')
	document.write('<span id="horas">')
	document.write ('00:</span>')
	document.write('<span id="minutos">')
	document.write ('00:</span>')
	document.write('<span id="segundos">')
	document.write ('00</span>')
	document.write ('</span>')
	iniciaReloj();
}

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #6 (permalink)  
Antiguo 11/10/2004, 07:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Por lo que veo, solo te queda usar el "ajuste"...

En vez de:
document.getElementById('segundos').firstChild.nod eValue = segundero;
debes usar:

document.getElementById('segundos').firstChild.nod eValue = ajuste(segundero);

y lo mismo para el minutero y el horario.

Supongo que con eso será suficiente.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 11/10/2004, 07:24
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Que te puedo decir Caricatos. Gracias eso era.
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #8 (permalink)  
Antiguo 11/10/2004, 07:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por José Molina
Que te puedo decir Caricatos. Gracias eso era.


¡Estupendo!

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 15/11/2004, 08:22
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Saludos.

No es que este viajando al pasado, pero me surgio este nuevo requerimiento.

Ahora cuando los minutos lleguen a 5, debo mostrar un alert indicando que esta por concluir el tiempo.

Lo que hice fue agregar esto:

if(minutero == 5) {
alert("Tiempo MOSCA");
}

aquí:

function ajuste(n) {
var salida = "";
if (n < 10) salida = "0" + n ;
else salida = "" + n;

if(segundero == 5) {
alert("Tiempo MOSCA");
}

return salida;
}

Digamos que funciona, pero el contador se detiene y como ya esta dentro de los 5 minutos, cada vez que cambia el segundo me aparece la pantalla.

Donde debría colocar ese IF ??

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 15/11/2004 a las 09:05
  #10 (permalink)  
Antiguo 15/11/2004, 09:04
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Jejeje, digamos que lo solucione a medias.

f((minutero==5) && (segundero == 00)) {
alert("Tiempo MOSCA");
}

Así mostrara el ALERT solamente a los 5 minutos de iniciado el conteo.
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
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 01:40.