Как получить текущее время для нулевого часового пояса на php?
gmdate возвращает время по Гринвичу
Объект даты принимает временную зону в качестве второго аргумента, предлагаю просто его указать: php.net/manual/en/datetime.construct.phpnew \DateTime('now', new \DateTimeZone('Europe/London'));