Foros del Web » Programando para Internet » Javascript »

Reloj en js con selección de zona horaria

Estas en el tema de Reloj en js con selección de zona horaria en el foro de Javascript en Foros del Web. Hola a tod@s, necesito crear un reloj en javascript, bueno de hecho el reloj ya lo tengo creado, pero he de añadir que el usuario ...
  #1 (permalink)  
Antiguo 25/04/2008, 09:20
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 19 años, 1 mes
Puntos: 0
Reloj en js con selección de zona horaria

Hola a tod@s,

necesito crear un reloj en javascript, bueno de hecho el reloj ya lo tengo creado, pero he de añadir que el usuario pueda seleccionar si quiere la hora de España, Argentina o Méjico.

He visto en las FAQ's como restar dos horas predeterminadas, pero yo necesito calcular la hora de otro pais a partir de la local de sistema (España) restándole "n" horas.

Muchas gracias,
__________________

  #2 (permalink)  
Antiguo 25/04/2008, 12:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Re: Reloj en js con selección de zona horaria

Si sabes restar dos horas, sabes restar n horas solo tienes que llenar la variable n con el numero adequado

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript">
var n=0;
function selecionapais(obj){
  n=obj.options[obj.selectedIndex].value;
  alert(n);
  //tufunction(n);
}
</script>
</head>
<body>
<select name="pais" tabindex="0" id="pais" onChange="javascirpt:selecionapais(this);" onMouseWheel=return(false)>
<option value="0"></option>
<option value="4">Argentina</option>
<option value="5">Chile</option>
</select>
</body>
</html> 
ahora solo tienes que substituir alert(n) por tufuncion(n).

(no estoy seguro pero javascript debe usar la hora del cliente no la del servidor, luego si miran tu pagina desde un pais distinto de españa no se si va a calcular bien la hora...)

Por otro lado tines que tener en cuenta que los paises no cambian del horario de verano a invierno simultaneamente... en europa si pero por ejemplo argentina no pasa al horario de invierno el mismo dia que españa pasa al de verano con lo que no siempre hay la misma diferencia horaria...

Quim

Última edición por quimfv; 25/04/2008 a las 12:56
  #3 (permalink)  
Antiguo 28/04/2008, 01:48
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Reloj en js con selección de zona horaria

Hola, gracias por contestar, pero creo que no me he explicado bien.

Cuando me referia a lo de "n" horas quería decir que yo se calcular el tiempo que hay entre las 12:56:43 y las 18:09:45, con uno de los ejemplos que hay en el foro.

Lo que yo quiero hacer es: Teniendo la hora actual 09:43:00...que hora es en Argentina? (p.ej). Se deberian restar 4 o 5 horas (ahora no me acuerdo) a la hora del sistema.

Por otro lado pasa otra cosa, si yo miro la web a las 00:45 de la noche, por decir algo, en Argentina es el dia anterior y la resta no es tan obvia como restar x y ya está.

Supongo que ahora se me ha entendido más bien!

Gracias!
__________________

  #4 (permalink)  
Antiguo 28/04/2008, 02:20
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: Reloj en js con selección de zona horaria

Mi estimado pinchoso, necesitas las funciones de GMT DATE

checate ese link para aclarar dudas Referencia de JavaScript 1.5:Objetos globales:Date

Saludos
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #5 (permalink)  
Antiguo 28/04/2008, 08:35
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Reloj en js con selección de zona horaria

Hola!
gracias a Gerifaltus creo que he encontrado la solución, la posteo aqui por si a alguien le sirve.
A partir de la referéncia a GMT DATE he encontrado un ejemplo bastante sencillo que permite hacer lo que yo necesitaba:
Código:
// funcion para calcular la hora local en una ciudad dada la diferencia horaria.
function calcTime(city, offset) {
    // creamos el objeto Date (la selecciona de la máquina cliente)
    d = new Date();
 
    // lo convierte  a milisegundos
    // añade la dirferencia horaria
    // recupera la hora en formato UTC
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);
 
    // crea un nuevo objeto Date usando la diferencia dada.
    nd = new Date(utc + (3600000*offset));
 
    // devuelve la hora como string.
    return "La hora actual en " + city + " es: " + nd.toLocaleString();
}
//Bombay
alert(calcTime('Bombay', '+5.5'));
//Singapur time
alert(calcTime('Singapur', '+8'));
//Londres
alert(calcTime('Londres', '+1'));
Podéis ver el artículo original aqui: http://articles.techrepublic.com.com...3-6016329.html
__________________


Última edición por pinchoso; 28/04/2008 a las 08:36 Razón: añado fuente
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 18:47.