DateTimeZone构造函数只接受区域名称:
new DateTimeZone('Europe/London');
而不是与 UTC 的偏移量:
new DateTimeZone('+01:00'); // Unknown or bad timezone (+01:00)
但是,可以从 DateTime 获得这样的 DateTimeZone :
(new DateTime('2012-12-28T00:00:00+01:00'))->getTimezone()->getName(); // +01:00
所以这有点奇怪。有没有办法直接从偏移量中获取 DateTimeZone?
最佳答案
除了Rafał's answer ,到目前为止我发现的最简单的方法是:
DateTime::createFromFormat('O', '+01:00')->getTimezone();
编辑
这是一个 bug已在 PHP 5.5.10 中修复。现在可以使用了!
关于php - 是否可以从偏移量创建 DateTimeZone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068594/