是否可以从偏移量创建DateTimeZone?

Ben*_*min 5 php datetime

DateTimeZone构造函数只接受一个区域的名称:

new DateTimeZone('Europe/London');
Run Code Online (Sandbox Code Playgroud)

而不是UTC的偏移量:

new DateTimeZone('+01:00'); // Unknown or bad timezone (+01:00)
Run Code Online (Sandbox Code Playgroud)

但是,可以从DateTime获取这样的DateTimeZone:

(new DateTime('2012-12-28T00:00:00+01:00'))->getTimezone()->getName(); // +01:00
Run Code Online (Sandbox Code Playgroud)

所以这有点奇怪.有没有办法从偏移量直接获取DateTimeZone?

Ben*_*min 5

除了Rafał的回答,我到目前为止找到的最简单的方法是:

DateTime::createFromFormat('O', '+01:00')->getTimezone();
Run Code Online (Sandbox Code Playgroud)

编辑

这是PHP 5.5.10中修复的错误.它现在有效!