Från och med PHP 5.1.0 kan du använda date_default_timezone_set() funktion för att ställa in standardtidszonen som används av alla datum/tidsfunktioner i ett skript.
För MySql (citerat från MySQL Server Time Zone Support sida)
Av intresse för dig är inställning av tidszoner per anslutning, som du skulle använda i början av dina skript
SET timezone = 'Europe/London';
När det gäller att upptäcka klientens tidszonsinställning kan du använda lite JavaScript för att hämta och spara den informationen i en cookie och använda den vid efterföljande sidläsningar för att beräkna rätt tidszon.
//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);
Eller så kan du erbjuda användarna valet att själva ställa in sina tidszoner.