2010-05-21 12 views
15

Come ottenere le impostazioni internazionali utilizzando Php, voglio ottenere il fuso orario in base alla posizione, c'è la possibilità di entrare in php.Come ottenere le impostazioni internazionali utilizzando Php

Ho bisogno di convertirlo in GMT e salvare Database.Ancora ho bisogno di riportarlo a UI con lo stesso fuso orario stesso fuso orario.

+1

Le impostazioni internazionali della macchina su cui PHP è in esecuzione o le impostazioni locali dell'utente che effettua la richiesta HTTP che viene elaborata da PHP? – Quentin

+3

'locale'! =' Posizione' Credo che tu intenda 'posizione',' locale' è un'impostazione per il paese e la lingua di un sistema – jigfox

risposta

1

Non è possibile ottenere locale o il fuso orario del cliente dal lato server, e si può fare solo un'ipotesi a esso dal client lato, usando JavaScript.

(È possibile ottenere ulteriori informazioni sulle impostazioni internazionali se il browser supporta Java, ma questo è un po 'di dolore e tutti odia applet.)

Per gestire fusi orari in un'applicazione web, memorizzare tutti i tempi come timestamp UTC, e convertirli in testo per la formattazione su pagina utilizzando un fuso orario scelto dall'utente. Puoi utilizzare i metodi like in this question per indovinare al fuso orario, ma poiché ciò non è affidabile, devi anche consentire all'utente di scegliere esplicitamente il fuso orario.

+0

stiamo lavorando su un sito web php che consente all'utente di configurare il tempo schdule del messaggio (SMS). Quindi è necessario consentire il tempo impostato dall'utente finale in varie zone. – Ramakrishnan

+0

Sì ... l'utente dovrà specificare il 'timezone_identifier' che sta usando manualmente, per passare a' date_default_timezone_set' come descritto da Sarfraz. Vedi http://www.php.net/manual/en/timezones.php per la lista degli identificatori; potresti metterli in una casella a discesa o in un'altra interfaccia utente. Puoi utilizzare JavaScript per selezionare un fuso orario best-guess per il valore predefinito del menu a discesa, come nella domanda che ho collegato, o semplicemente predefinito in UTC. Una volta che l'utente ha inserito un fuso orario e fuso orario, è necessario convertirlo in UTC per l'archiviazione del database. – bobince

+0

+1 per la memorizzazione dei timestamp UTC. Potresti anche voler controllare il phpBB source (o un'app di PHP simile), hanno l'utente selezionare il loro fuso orario al momento della registrazione, penso che sia esattamente quello che stai cercando. – wimvds

1

È possibile utilizzare:

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

Quelle virgolette singole sono lì per un motivo, o è un refuso? – Svish

+0

posso usarlo per ottenere le impostazioni locali date_default_timezone_get() – Ramakrishnan

+0

@Svish: quello era un errore di battitura, giustamente individuato. Grazie – Sarfraz

53

Utilizzando

setlocale (LC_ALL,"0"); 

per ottenere nel risultato il locale vero e proprio.

+0

Grazie mille! Era davvero nella documentazione di PHP, ma in qualche modo così tanto proprio davanti al mio naso che mi era sfuggito :) –

+0

Questa dovrebbe essere la risposta della domanda precedente. Molte grazie!! –

+0

Breve, semplice, al punto! :) –

Problemi correlati