This is an interesting case. The Etc/GMT
timezones have their sign reversed.
From the Wikipedia article on tz database:
In order to conform with the POSIX style, those zone names beginning with
Etc/GMT
have their sign reversed from what most people expect. In this style, zones west of GMT have a positive sign and those east have a negative sign in their name (e.gEtc/GMT-14
is 14 hours ahead/east of GMT.)
The PHP manual also warns you not to use this timezone:
Warning: Please do not use any of the timezones listed here (besides UTC), they only exist for backward compatible reasons.
Instead of using an offset, use a specific timezone identifier. To get a list of valid timezones, you can use print_r(DateTimeZone::listIdentifiers(DateTimeZone::ALL));
.