You could store their offset as plus and minus hours, then use [man]gmdate[/man] with the timestamp of your date field (use UNIX_TIMSTAMP() on the field if it's not already one) then add offset * 3600
SELECT (UNIX_TIMESTAMP(thedatefield) + toffset * 3600) as tstamp FROM mytable...
then later display
gmdate('r', $row['tstamp']);