2010-12-15 10 views
5

Quiero ser capaz de obtener el tiempo de la persona que usa el script PHP.Determinación de la hora y la fecha del usuario en PHP

No sé qué zona horaria que estarán en, etc.

¿No hay una manera de decir simplemente 'llegar el momento de que el usuario' en lugar de establecer zonas horarias?

+2

¿Cómo sabría php en qué zona horaria está la persona? –

+2

Esa es su pregunta. –

Respuesta

7

No. Sólo hay tres maneras de conseguir el huso horario del usuario:

  1. pedir al usuario

  2. uso de JavaScript para comprobar el lado del cliente tiempo y enviar a su servidor con una solicitud AJAX, una cookie, etc. - solo funciona si JS está habilitado y no funciona para la primera solicitud

  3. uso de un IP a la ubicación de base de datos para localizar el usuario y determinar su zona horaria de la ubicación - más del 5% de las veces con cualquier base de datos comercial, su ubicación en el plano de la ciudad será un error

+2

+1 # 2 (JavaScript) es el enfoque correcto. – Asaph

+3

Todos los enfoques son útiles, y el # 1 es correcto con la frecuencia n. ° 2. ¡La corrección es un concepto sensible al contexto! Si alguien se está registrando y su aplicación proporciona informes específicos de tiempo, debería solicitarles la zona horaria en la que desean mostrar los informes, sin adivinar mediante JavaScript u otros medios. JavaScript no siempre está disponible, pero la zona horaria de su computadora no siempre es la zona horaria correcta: viajar a otro país, tomar prestada la computadora de otra persona, simplemente tener el reloj configurado incorrectamente, etc. –

+3

# 1 es lo mejor, si posible; JavaScript a menudo es incorrecto, pero las personas generalmente saben dónde están. –

1

la persona que utiliza el script php.

Ese es el servidor web. Si se refiere a la persona que solicita el script PHP, no conoce su zona horaria a menos que sean lo suficientemente agradables para enviársela. Firefox no parece, aunque algunos pueden.

La respuesta aquí es el uso de Javascript para obtener la hora local y, o bien hacer lo que hay que hacer del lado del cliente, o enviarlo al servidor de alguna manera - pero eso es una cuestión diferente.

5

No, no hay. Lo único que puedes saber sobre tus usuarios "gratis" es lo que se puede comunicar a través del HTTP protocol, y eso no incluye "zona horaria del usuario".

Usted podría utilizar Javascript para obtener la hora del navegador, pero no se garantiza que sea precisa.

Usted podría tratar de geolocalizar al usuario, pero eso es aún menos preciso.

El usuario sabrá lo mejor de sí mismo, pregúntele.

Cuestiones relacionadas