Foros del Web » Programando para Internet » Javascript »

Saber uso horario de visitante!

Estas en el tema de Saber uso horario de visitante! en el foro de Javascript en Foros del Web. Hola, tengo ciertos horarios publicados en mi web, y quiero cambiarlos dependiendo del GMT del visitante, como les parece que se puede hacer? Saludos....
  #1 (permalink)  
Antiguo 16/02/2012, 14:23
 
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 5
Pregunta Saber uso horario de visitante!

Hola, tengo ciertos horarios publicados en mi web, y quiero cambiarlos dependiendo del GMT del visitante, como les parece que se puede hacer?



Saludos.
  #2 (permalink)  
Antiguo 17/02/2012, 16:20
Avatar de alejandromg  
Fecha de Ingreso: noviembre-2011
Ubicación: Tegucigalpa, HN
Mensajes: 35
Antigüedad: 12 años, 5 meses
Puntos: 15
Respuesta: Saber uso horario de visitante!

Lo más lógico que se me ocurre es utilizar algo así:

Código Javascript:
Ver original
  1. var t = new Date();
  2. var GMT = t.toTimeString().split('GMT')[1].slice(0,5);
  3.  
  4. // GMT ahora contiene la posición horaria del visitante.
  5.  
  6. console.log(GMT); // -0600 en mi caso

De ahi, tu defines lo que quieres hacer con el uso horario...
__________________
¿Te gusto mi comentario? +1 ;)

Alejandro Morales. La mejor forma de contactarme :: via twitter @_alejandromg
CTO at numbus

Última edición por alejandromg; 17/02/2012 a las 16:21 Razón: For the sake of standars-
  #3 (permalink)  
Antiguo 17/02/2012, 16:28
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Saber uso horario de visitante!

buenas,
para eso tienes el método getTimezoneOffset que devuelve la cantidad de minutos en relación a la localización y la zona GMT.
  #4 (permalink)  
Antiguo 22/02/2012, 13:37
 
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: Saber uso horario de visitante!

Tengo cero conocimientos de javascrit, como hago para imprimirlo en PHP, o sea manejarlo con una variable?


Saludos.
  #5 (permalink)  
Antiguo 22/02/2012, 23:43
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Saber uso horario de visitante!

Esto ya lo habíamos hablado varias veces. Y no sé si es PHP o JS. Al menos no estoy muy seguro de lo que buscas. Porque la hora se puede tomar en la configuración de la máquina cliente o por el IP capturado en el servidor.

Para corregir valores de horas tienes que saber la diferencia entre las horas que pones y el UTC, eso lo averiguas por tu cuenta. Luego, como te mencionaron, sacas la hora entre la máquina local de cliente y UTC. Por último, obtienes la diferencia entre las dos, y con eso sabes cuanto corregirle a tus valores para que el visitante a tu página los vea como locales. Porque supongo que eso es lo que quieres hacer.

Ya es muy tarde y hoy tuve un día difícil, pero me entretuve en hacer un demo JS.
Ahora que lo pienso, no sé cómo se comportará en países al este de Greenwich. Tal vez haya que hacerle algún ajuste. Pero son las 2:30 de la mañana y yo me voy a desmayar hasta el mediodía, por lo menos. No me ofendo si lo corrigen ustedes.

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title></title>
<script type="text/javascript">
//alert(Math.abs(-8+(-15)))
function corrigeFuera24(X){
var nvaHora = (X>24) ? 24-X : X;
//alert(X+" "+nvaHora)
return nvaHora; 
/* Esta funcion corrige el cálculo cuando la diferencia entre la hora local 
y la del país de origen sale del rango de "24horas". Al llegar a "24" no sigue 
con "25" sino que recomienza con "1" */
}

var t = new Date();

function hora(){

document.getElementById("nd").innerHTML = t;
document.getElementById("gto").innerHTML = t.getTimezoneOffset();
/* Diferencia local con UTC, en minutos */

document.getElementById("dh").innerHTML = t.getTimezoneOffset() / 60;
/* Divide los minutos por 60 para convertir en horas */

document.getElementById("gh").innerHTML = t.getHours();
/* Hora local */

document.getElementById("gutch").innerHTML = t.getUTCHours();
/* Hora UTC, no se usa, la pongo de referencia */

document.getElementById("d11_gto").innerHTML = (-t.getTimezoneOffset() / 60) - (-11);
/* Diferencia entre país de origen y país local, en horas. "-11" es la diferencia que ya
conocemos del país de origen en medio del Pacífico a UTC. */

document.getElementById("dmp_gto").innerHTML = 
Math.abs( corrigeFuera24( 21 + ((-t.getTimezoneOffset() / 60) - (-11)) ) );
/* Hora corregida. El valor absoluto se usa para quitar el signo "-" que le deja la 
función */

}

onload = hora;
</script>
<style type="text/css">
span {background: yellow;}
code {background: silver; font-weight: bold;}
u {cursor: help}

</style>
</head>
<body>

<h2>En mi país las <u title="UTC -11 horas, en medio del Pacífico.">9 p.m.</u> (21 
<sub>[24h]</sub>) son las <span id=dmp_gto></span> de tu país.</h2>

<p>cadena de <code>new Date()</code> = <span id=nd> </span></p>
<p>cadena de <code>getTimezoneOffset()</code> = <span id=gto> </span></p>
<p><code>getTimezoneOffset()</code> en horas (el valor se toma como negativo al oeste) = <span id=dh> </span></p>
<p><code>t.getHours()</code> hora local (24h) = <span id=gh> </span></p>
<p><code>getUTCHours()</code> en horas = <span id=gutch> </span></p>
<p>Diferencia entre nuestros países → (-<code>getTimezoneOffset()</code>) - (-11)  = <span id=d11_gto> </span></p>

</body>
</html> 
Reloj con mismo horario para todos

Como colocar la Hora en la pagina pero no del komputador si no la de pais

Etiquetas: horario
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 05:18.