我正在从API接收用户的时区,但是当将该字符串发送到DateTimeZone
构造函数时,当值为AEDT
和AEST
时,它会失败。
我已经检查了我的时区版本,并将其更新为" Olson" 2016.10版本,但问题仍然存在。
根据这些发行说明,AEDT
和AEST
应该是有效的时区。
有什么办法可以使这两个缩写工作?看到我正在从外部API中收到它们,除非有丑陋的hack:)
自解决此问题以来已经有一段时间了,但是我确实记得它是PHP或TimeZonedB中的错误。
做$date = new DateTime('2000-01-01', new DateTimeZone('Australia/Sydney'));
并获取$date
的时区导致AEDT
,然后再被PHP识别为有效的时区。
我最终做的是将php升级到一个较新的版本。