Die Zeit in Europa/London ist während der Sommerzeit keine GMT-Zeit. Sie müssen es auf UTC einstellen.
date_default_timezone_set('UTC');
date_default_timezone_set('GMT');
kann funktionieren, aber wie Kenneth in einem Kommentar unten anmerkt, ist es veraltet.