A partire da PHP 5.1.0 puoi utilizzare date_default_timezone_set() funzione per impostare il fuso orario predefinito utilizzato da tutte le funzioni di data/ora in uno script.
Per MySql (citato da Supporto per il fuso orario di MySQL Server pagina)
Ti interessa l'impostazione per connessione dei fusi orari, che useresti all'inizio dei tuoi script
SET timezone = 'Europe/London';
Per quanto riguarda il rilevamento dell'impostazione del fuso orario del client, è possibile utilizzare un po' di JavaScript per ottenere e salvare tali informazioni in un cookie e utilizzarlo nelle letture di pagina successive, per calcolare il fuso orario corretto.
//Returns the offset (time difference) between Greenwich Mean Time (GMT)
//and local time of Date object, in minutes.
var offset = new Date().getTimezoneOffset();
document.cookie = 'timezoneOffset=' + escape(offset);
Oppure potresti offrire agli utenti la possibilità di impostare autonomamente i propri fusi orari.