elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ¿Como puedo optener la hora local?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como puedo optener la hora local?  (Leído 2,428 veces)
SrTrp


Desconectado Desconectado

Mensajes: 327


Script/C#


Ver Perfil
¿Como puedo optener la hora local?
« en: 29 Abril 2020, 00:56 am »

Bueno quiero saber que hora es desde donde visita la pagina, por ejemplo si alguien de España entra quiero saber su hora que es allá, y si entra alguien en estados unidos también quiero su hora local de donde es.
Se que se puede hacer así pero sería algo tedioso o si es la única forma, que alguien me diga como puedo saber desde que pais visita la pagina.
Código
  1. $hora = new DateTime("now", new DateTimeZone('America/New York'));
  2. echo $hora->format('G');
  3.  


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: ¿Como puedo optener la hora local?
« Respuesta #1 en: 29 Abril 2020, 01:33 am »

Con "now" no obtienes la hora local del visitante, obtienes la hora local del servidor. PHP por si mismo, no sabe la hora local del visitante porque no se comunica con el de ninguna forma, todo código PHP se ejecuta ANTES de que el visitante vea algo.

De más fiable a menos fiable:

1. Puedes usar javascript y hacer una petición Ajax para indicarle la hora a PHP o simplemente setear una cookie y leerla con PHP.


2. Puedes mirar a ver de donde es la IP del visitante y usar la hora según su localización. Aquí asumes que la IP desde la que se conecta el visitante tiene una localización aproximada cerca de el, lo cual no tiene porque ser cierto si usa una VPN o está en un país con múltiples zonas horarias y su nodo de salida esta en otra zona horaria.


3. Puedes obtener la cabecera Accept-Language que suele proporcionar el navegador y asumir la hora basándonos en el idioma que proporciona el navegador. Por ejemplo, si proporciona es-ES seguramente esté en España. La putada de esto ultimo son países con múltiples zonas horarias (Canada por ejemplo o Estados Unidos).

Saludos


« Última modificación: 29 Abril 2020, 01:36 am por #!drvy » En línea

SrTrp


Desconectado Desconectado

Mensajes: 327


Script/C#


Ver Perfil
Re: ¿Como puedo optener la hora local?
« Respuesta #2 en: 29 Abril 2020, 22:32 pm »

No entendí de la primera forma, supongo que dices para que me de la hora en tiempo real, pero pues solo quiero saberla al momento que ingresa a la pagina por ejemplo cada vez que relogee la pagina quiero saberla, lo que tengo pensado hacer un modo oscuro automatizado, si ya es noche poner un fondo oscuro y de lo contrario blanco, y de la 2da forma si me di una idea pero se haría algo tedioso lo único que se me ocurre para que sea menos asignarle una hora especifica a cada continente para evitar si es de mexico o argentina, o así.
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: ¿Como puedo optener la hora local?
« Respuesta #3 en: 30 Abril 2020, 00:17 am »

Puedes hacerlo directamente desde javascript en el navegador sin hacer la petición al servidor de la siguiente forma:
Código
  1. new Date().getHours() > 19 ? ActivarModoNoche() : "nada" ;
  2.  
  3. function ActivarModoNoche() {
  4. /* Aquí haces lo que quieras, ya sea cambiar el color del background o lo que tengas pensado. Ej:
  5. document.body.style.backgroundColor = "#000"; */
  6. }

« Última modificación: 30 Abril 2020, 00:21 am por @XSStringManolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines