date();
restituisce l'orario del tuo server specificando il fuso orario con GMT.
gmdate();
restituisce direttamente l'orario GMT e a quel punto secondo me non ha senso specificare il fuso orario perchè ovunque risieda il server l'ora sarà sempre quella.
Quindi se la tua esigenza è quella di avere l'orario GMT con il fuso locale puoi fare così;

Codice PHP:
                $Z=date('Z');
        
$O=date('O');
        
$gmtgmdate('Y-m-dTh:m:s.'.$O.$Z.'');
        echo 
$gmt
il risultato in questo momento è: 2010-07-15GMT09:07:52.+02007200

spero vada bene.