I’m wondering why you are seeing this happen, as all my MySQL instances (I’ve checked both MySQL 4 and 5 databases on Dreamhost) show the MySQL system_time_zone variable set to “PST” and return the time_zone variable set to “SYSTEM” when queried with “show variables” (from within the SQL query box of phpMyAdmin).
I’m wondering if somehow your php code is modifying the times before, or while, running the query that loads your database.
I know that’s not much help, but without seeing your code, or being able to inspect the system/runtime variables of your database, I can’t say much else. Did you perchance load this database with ajn “import” of data exported from your previous host (possibly inadvertently executing a query that affected your runtime variables for the database)?
I suggest you start with trying to find out why your MySQL server is using GMT instead of the SYSTEM (PST) values for the runtime variables. Open your database with phpMyAdmin (or code), run the query “show variables”, and look for the system_time_zone and time_zone variables to see for sure what your database in using. Once you confirm that, it will help to tell where to look next.