Hola, tengo ciertos horarios publicados en mi web, y quiero cambiarlos dependiendo del GMT del visitante, como les parece que se puede hacer?
Saludos.
| ||||
Respuesta: Saber uso horario de visitante! Lo más lógico que se me ocurre es utilizar algo así:
Código Javascript:
Ver original 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- |
| |||
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> Como colocar la Hora en la pagina pero no del komputador si no la de pais |
Etiquetas: |