From manual page: https://php.net/datetimezone.listidentifiers
The DateTimeZone class in PHP is not returning canonical timezone names when using valid alias/legacy identifiers such as:
- US/Eastern (expected: America/New_York)
- US/Central (expected: America/Chicago)
- Canada/Eastern (expected: America/Toronto)
- US/Pacific (expected: America/Los_Angeles)
- US/Hawaii (expected: Pacific/Honolulu)
- Etc/GMT (expected: Etc/GMT but validation fails in DateTimeZone::listIdentifiers())
These timezones are accepted by new DateTimeZone(), but:
- They do not appear in DateTimeZone::listIdentifiers(), causing validation rules to fail.
- DateTimeZone::getName() and DateTime::format('e') return the same alias instead of the canonical name.