Time zone conversion

from the Artful MySQL Tips List


Here is a workaround for importing time data from servers that do not observe daylight saving time (DST), to a server that does. 1. Ensure MySQL time zone tables are loaded. 2. Collect the source timestamp with gmmktime(), offset by the local number of hours from UTC:
$timestamp = gmmktime($hours + $localHrsFromUTC, $minutes, $seconds, $month, $day, $year, $isDaylight);
3. Retrieve with:
SELECT CONVERT_TZ(FROM_UNIXTIME(timestamp-28800), 'LOCAL TIMEZONE NAME','UTC') 
FROM tableName;
Without CONVERT_TZ, FROM_UNIXTIME() converts the UTC timestamp to the server's timezone, which ignores DST.

Last updated 22 May 2009


Return to the Artful MySQL Tips page