Pues .. creo q vas a tener que hacer ese condicional para usar +1 o -1 segun corresponda ... (total .. la fecha que lo cambian ya lo sabes).
Habría una solución mas compleja para obtener la fecha GMT correcta .. sería conectar a un servidor de Hora y obtener dicha hora .. Conectar lo harias con funciones fsocket() y afines de PHP .. el protocoolo no lo conozco pero es el:
NTP
http://www.ntp.org/
(por si quieres investigarlo o buscar algun script que ya lo haga ..)
Un saludo,