该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?
除了Rafał的回答,我到目前为止找到的最简单的方法是:
DateTime::createFromFormat('O', '+01:00')->getTimezone();
Run Code Online (Sandbox Code Playgroud)
编辑
这是PHP 5.5.10中修复的错误.它现在有效!
| 归档时间: |
|
| 查看次数: |
2824 次 |
| 最近记录: |