Comunidad de diseño web y desarrollo en internet online

Hora con JS

Citar            
MensajeEscrito el 05 Dic 2008 05:19 pm
Hola, resulta que después de un largo tiempo me he decidido a investigar javascript y eh comenzado por desarrollar un reloj que tome la hora del servidor, como tengo conocimientos de AS y viendo en algunos tutoriales logre hacer esto

Código :

function Hora(Fecha_Servidor, Elemento){   
   Fecha = new Date(Fecha_Servidor);
    Hora = Fecha.getHours();
    Minuto = Fecha.getMinutes();
    Segundo = Fecha.getSeconds();
   
   Valor_Hora = new String(Hora);
   Valor_Minuto = new String(Minuto);
   Valor_Segundo = new String(Segundo);

    if (Valor_Segundo.length == 1){
       Segundo = "0" + Segundo;
   }

    if (Valor_Minuto.length == 1){
       Minuto = "0" + Minuto;
   }

    if (Valor_Hora.length == 1){
       Hora = "0" + Hora;
   }
   
   if(Hora > 12){
      Meridiano = "pm";
   }
   else{
      Meridiano = "am";
   }

    Resultado = Hora + ":" + Minuto + " " + Meridiano;
   
    document.getElementById(/*Elemento*/"Hora").innerHTML = Resultado;
    setTimeout("Hora('" + Fecha + "','" + Elemento + "')",1000);
}


Pero resulta que no funciona como debería ya que al ejecutarse la sentencia setTimeout(); Firebug me devuelve un error donde dice que “Hora” no es un función.

Aun no eh dado con el error y me interesaría poder descubrí donde se encuentra, quien sea tan amable de explicármelo se lo agradeceré.

Saludos

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 12 Dic 2008 05:43 pm
hmm bueno, dejame decirte que que puro javascript no podrás obtener la hora del servidor, unicamente la hora del cliente, pero si usas ajax si podrás cargar la hora del servidor, unicamente que tendrás que ir al servidor a cada momento que necesites cambiar la hora y eso implica tráfico hacia el mismo, y el error de firebug es porque tu funcion hora tiene algun error.

Por ejemplo, para obtener la hora del CLIENTE es con :

Código :

var hora = new Date();


ya las funciones para obtener hora minutos, etc. son:

getDate()
Devuelve el día del mes.

getDay()
Devuelve el día de la semana.

getHours()
Retorna la hora.

getMinutes()
Devuelve los minutos.

getMonth()
Devuelve el mes (atención al mes que empieza por 0).

getSeconds()
Devuelve los segundos.

getTime()
Devuelve los milisegundos transcurridos entre el día 1 de enero de 1970 y la fecha correspondiente al objeto al que se le pasa el mensaje.

getYear()
Retorna el año, al que se le ha restado 1900. Por ejemplo, para el 1995 retorna 95, para el 2005 retorna 105. Este método está obsoleto en Netscape a partir de la versión 1.3 de Javascript y ahora se utiliza getFullYear().

getFullYear()
Retorna el año con todos los dígitos. Usar este método para estar seguros de que funcionará todo bien en fechas posteriores al año 2000.

setDate()
Actualiza el día del mes.

setHours()
Actualiza la hora.

setMinutes()
Cambia los minutos.

setMonth()
Cambia el mes (atención al mes que empieza por 0).

setSeconds()
Cambia los segundos.

setTime()
Actualiza la fecha completa. Recibe un número de milisegundos desde el 1 de enero de 1970.

setYear()
Cambia el año recibe un número, al que le suma 1900 antes de colocarlo como año de la fecha. Por ejemplo, si recibe 95 colocará el año 1995. Este método está obsoleto a partir de Javascript 1.3 en Netscape. Ahora se utiliza setFullYear(), indicando el año con todos los dígitos.

setFullYear()
Cambia el año de la fecha al número que recibe por parámetro. El número se indica completo ej: 2005 o 1995. Utilizar este método para estar seguros que todo funciona para fechas posteriores a 2000.

Si quisieras hacerlo con la hora del servidor, debes hacerlo con ajax, por ejemplo, con asp.net (y c#) puedes poner este código en una página para que te responda texto plano y con javascript lo pongas así como viene del servidor:

Código :

Response.SetContentType("text/plain");
Response.Write(DateTime.Now.ToString("dd-MM-yyyy hh:mm tt"));//Esto te devuelve la hora como 13-12-2008 11:41 am


y en tu ajax:

Código :

//... todo lo relacionado para obtener el objeto xmlhttp, el cual llamaré objxmlhttp

var cadenaFecha = objxmlhttp.responseText;
var spanFecha = document.getElementById('spanFecha');
spanFecha.innerHTML = cadenaFecha;

Por oware

10 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.