Depuis PHP 5.1.0, vous pouvez utiliser date_default_timezone_set() fonction pour définir le fuseau horaire par défaut utilisé par toutes les fonctions de date/heure dans un script.
Pour MySql (cité de Prise en charge du fuseau horaire du serveur MySQL page)
Ce qui vous intéresse, c'est le réglage par connexion des fuseaux horaires, que vous utiliseriez au début de vos scripts
SET timezone = 'Europe/London';
En ce qui concerne la détection du paramètre de fuseau horaire du client, vous pouvez utiliser un peu de JavaScript pour obtenir et enregistrer ces informations dans un cookie, et les utiliser lors des lectures de page suivantes, pour calculer le fuseau horaire approprié.
//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);
Vous pouvez également proposer aux utilisateurs de définir eux-mêmes leur fuseau horaire.