What I was suggesting is that you store the unix timestamp in your database - eg 1041275715.

Then use the date() function to format it when you put it on the page. Always store your dates as GMT0 and then format it for your time zone when you display it on the page.

I've not worked with anything that required timezones before, but I guess you would just add or subtract the number of seconds for your timezone = eg do $timestamp-3600*8 when you pass it to the date() function. There might be a better or 'proper' way to do this; maybe within the date function itself? I haven't looked.