Foros del Web » Programando para Internet » Javascript »

Fecha y hora

Estas en el tema de Fecha y hora en el foro de Javascript en Foros del Web. Hola a todos, estoy estudiando javascript, y en uno de los ejercicios es de poner la fecha y la hora en la barra de estado, ...
  #1 (permalink)  
Antiguo 15/08/2006, 04:57
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 3 meses
Puntos: 1
Fecha y hora

Hola a todos, estoy estudiando javascript, y en uno de los ejercicios es de poner la fecha y la hora en la barra de estado, lo que pasa es q el codigo es este:

Código:
<html>
<head>
<title>Reloj</title>
</head>
<script language=javascript>
semana=new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
mes= new Array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre");
function reloj () {
	var fecha = new Date();
	var horas = fecha.getHours();
	var minutos = fecha.getMinutes();
	var segundos = fecha.getSeconds();

	var tiempo= "" + ((horas >12) ? horas -12 :horas);
	tiempo += ((minutos < 10) ? ":0" : ":") + minutos;
	tiempo += ((segundos < 10) ? ":0" : ":") + segundos;
	tiempo += (horas >= 12) ? " P.M." : " A.M.";
	tiempo +="   "+semana[fecha.getDay()];
        tiempo +=" "+fecha.getDate()+" de "+mes[fecha.getMonth()]+" de "+fecha.getYear();
	window.status = tiempo;
	setTimeout("reloj()",1000);
}
</script>
<body bgcolor="White" onLoad="reloj()">
<center><h2>Reloj de barra de estado</h2></center>
<hr align="center" size="3">
</body>
</html>
Lo que ocurre es q no lo entiendo muy bien, he buscado en los FAQS del foro, y vi el faq nº 11, explicado paso a paso, es muy parecido dicho codigo al que me ha dado mi profesor, pero es algo diferente, el vuestro lo entiendo perfectamente pues esta explicado muy bien, pero el mio, pues no lo entiendo, y tengo un gran problema y es que estoy atascada, pq el profesor no tiene mucha paciencia para explicarmelo, asi que a ver si alguien de aqui seria tan amable de explicarmelo, aunque solo sea esta parte:

Código:
var tiempo= "" + ((horas >12) ? horas -12 :horas);
	tiempo += ((minutos < 10) ? ":0" : ":") + minutos;
	tiempo += ((segundos < 10) ? ":0" : ":") + segundos;
	tiempo += (horas >= 12) ? " P.M." : " A.M.";
	tiempo +="   "+semana[fecha.getDay()];
        tiempo +=" "+fecha.getDate()+" de "+mes[fecha.getMonth()]+" de "+fecha.getYear();
Esta es la q no entiendo apenas nada, SI ALGUIEN ME LO PUEDE EXPLICAR, POR FAVOR...

MUCHISIMAS GRACIAS, DE VERDAD.
__________________
Nada es imposible para una mente dispuesta
  #2 (permalink)  
Antiguo 15/08/2006, 05:21
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola Hapki

Mira, esto es un tipo de condicion usando el operador condicional que usa tres operandos en vez de dos. Es una forma de abreviar, por ejemplo, esto:

if(m == 0) variable = 1 else variable = 2;

por esto

m == 0 ? variable = 1 : variable = 2;

Se realiza una afirmación m==0 en caso de devolver verdadero se ejecuta la sentencia que hay en primer lugar variable = 1 y en caso de ser falso se ejecuta la segunda.

Se puede usar para signar un valor directamente

variable = m == 0 ? 1 : 2;

En el script que plantea tu profe está usando este operador

tiempo += ((minutos < 10) ? ":0" : ":") + minutos;

está concatenando a la variable tiempo un :0 en caso de que minutos sea menor a 10 o : en caso de que no lo sea. Detrás le concatena el valor de la variable minutos

Cita:
pq el profesor no tiene mucha paciencia para explicarmelo,
Pues vaya un profesor

Era eso lo que no entendías o hay más?
  #3 (permalink)  
Antiguo 15/08/2006, 09:51
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 3 meses
Puntos: 1
Ante todo muchisimas gracias por responder, y respecto al profesor, que le vamos a hacer, no todo el mundo sirve para enseñar...

Sólo una cosilla mas que no creo q tenga importancia, en esta sentencia:

Código:
tiempo+="   "+semana[fecha.getDay()];
Porque en este caso usa CORCHETES y no parentesis, no se si tendrá algun significado o no, por eso pregunto...

Y por último, cuando en mi ejercicio pone:

Código:
tiempo+=
Corrigeme si me equivoco, significa que la variable tiempo se va sumando uno cada vez que pasa o ...¿?

Muchas gracias por tu atención y ayuda.
__________________
Nada es imposible para una mente dispuesta
  #4 (permalink)  
Antiguo 15/08/2006, 10:12
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por Hapki Ver Mensaje
Sólo una cosilla mas que no creo q tenga importancia, en esta sentencia:

Código:
tiempo+="   "+semana[fecha.getDay()];
Porque en este caso usa CORCHETES y no parentesis, no se si tendrá algun significado o no, por eso pregunto...
Los paréntesis se emplean para pasar parámetros a funciones (en caso de que se requieran). Los corchetes se usan para hacer referencia a un elemento dentro de un array, bien sea por su posición dentro del array o por bien por su clave en caso de ser un array asociativo.

semana es un array que contiene los nombre de los días de la semana.

semana[fecha.getDay()];

Lo que hace es llamar al nombre día de la semana dentro del array por su posición que es el dato que le pasa entre los corchetes. Ese dato es variable dependiendo del día de la semana en el que se ejecute el script; por eso le indica que saque el día de la semana actual fecha.getDate(). Hoy es martes. El sistema comienza la semana en domingo (0) por lo tanto el lunes devuelve 1 y hoy martes devuelve 2, así que fecha.getDay() hoy devuelve el número 2, por lo tanto está llamando a semana[2]. Comenzando desde 0 el 2 nos lleva a "martes" dentro del array semana.

Cita:
Y por último, cuando en mi ejercicio pone:

Código:
tiempo+=
Corrigeme si me equivoco, significa que la variable tiempo se va sumando uno cada vez que pasa o ...¿?
No, tiempo += quiere decir tiempo = tiempo +

Osea, variable += es variable = sí misma +

Un saludo
  #5 (permalink)  
Antiguo 15/08/2006, 10:44
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 3 meses
Puntos: 1
Entonces si significa lo mismo el + , para que se pone? la sentencia cambiaría si no pongo el +?

Gracias de nuevo
__________________
Nada es imposible para una mente dispuesta
  #6 (permalink)  
Antiguo 15/08/2006, 10:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
A ver, tal vez un ejemplo numérico lo ilustre mejor

Mira esto

var m = 5

Si a m le queremos sumar 3 podemos pedírselo así

m = m +3

o abreviarlo así

m += 3

En el caso de una suma de cadenas podemos tener

saludo = "hola "

y concatenarle otra cadena

saludo = saludo + "que tal"

o bien...

saludo += "que tal"

Ambas formas devolverán la concatenación de ambas cadenas "hola que tal"

  #7 (permalink)  
Antiguo 15/08/2006, 10:59
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 3 meses
Puntos: 1
Ahhh, ahora si, ahora si que lo he comprendido....

Muchisimas gracias!!!! :D
__________________
Nada es imposible para una mente dispuesta
  #8 (permalink)  
Antiguo 15/08/2006, 11:04
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Muchísimas de nadas

Un saludo
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 06:33.