2010-05-21 13 views
15

Cómo obtener la configuración regional mediante PHP, quiero obtener la zona horaria basada en la ubicación, ¿hay alguna posibilidad de obtener en php?Cómo obtener configuración regional mediante Php

Necesito convertirlo a GMT y guardar la base de datos. Una vez más tengo que volver a colocarlo en la interfaz de usuario con la misma zona horaria.

+1

La configuración regional de la máquina en la que se está ejecutando PHP o la ubicación del usuario que realiza la solicitud HTTP que está siendo procesada por PHP? – Quentin

+3

'locale'! =' Location' Creo que quiere decir 'location',' locale' es una configuración para el país y el idioma de un sistema – jigfox

Respuesta

1

No se puede obtener la configuración regional o la zona horaria del cliente desde el lado del servidor, y sólo se puede hacer una conjetura en él desde el cliente lado, usando JavaScript.

(Usted puede obtener más información de configuración regional si el navegador compatible con Java, pero eso es un poco de dolor y todo el mundo odia a los applets.)

Para manejar las zonas horarias en una aplicación web, almacenar todos sus tiempos como marcas de hora UTC, y convertirlos a texto para formatear en la página utilizando una zona horaria elegida por el usuario. Puede usar los métodos like in this question para adivinar la zona horaria, pero como esto no es confiable, también debe permitir que el usuario seleccione la zona horaria de forma explícita.

+0

estamos trabajando en el sitio web php que permite al usuario configurar el tiempo de programación del mensaje (SMS). Así que necesitamos permitir que el usuario final configure la hora en varias zonas. – Ramakrishnan

+0

Sí ... el usuario tendrá que especificar el 'timezone_identifier' que está usando manualmente, pasar a' date_default_timezone_set' como lo describe Sarfraz. Ver http://www.php.net/manual/en/timezones.php para la lista de identificadores; puede ponerlos en un cuadro desplegable u otra IU. Puede usar JavaScript para elegir una zona horaria de mejor estimación para el valor predeterminado de la lista desplegable, como en la pregunta que he vinculado, o simplemente por defecto a UTC. Una vez que el usuario ha ingresado una hora y una zona horaria, debe convertirla a UTC para el almacenamiento de la base de datos. – bobince

+0

+1 para almacenar marcas de tiempo UTC. También es posible que desee comprobar la fuente phpBB (o una aplicación similar de PHP), que el usuario seleccione su zona horaria al registrarse, creo que eso es exactamente lo que está buscando. – wimvds

1

Se puede utilizar:

date_default_timezone_set('Europe/London'); 
date_default_timezone_get; // Europe/London 

o

if (ini_get('date.timezone')) { 
    echo 'date.timezone: ' . ini_get('date.timezone'); 
} 
+0

¿Están esas comillas dobles allí por algún motivo, o es un error tipográfico? – Svish

+0

puedo usar esto para obtener la configuración regional date_default_timezone_get() – Ramakrishnan

+0

@Svish: ese fue un error tipográfico, acertadamente detectado. Gracias – Sarfraz

53

Usando

setlocale (LC_ALL,"0"); 

para obtener el resultado de la configuración regional real.

+0

¡Muchas gracias! De hecho, estaba en la documentación de PHP, pero de alguna manera estaba tan en frente de mi nariz que me lo había perdido :) –

+0

Esta debería ser la respuesta a la pregunta anterior. ¡¡Muchas gracias!! –

+0

¡Corto, simple, al grano! :) –

Cuestiones relacionadas