当我运行此代码时,在我的一台服务器上
$now = new DateTime(null, new DateTimeZone('America/Chicago'));
print_r($now->getOffset());
我得到0作为输出,而在其他服务器上它按预期-18000。
在php.ini中将默认时区设置为UTC并没有帮助。这个问题似乎与美国/芝加哥时区有关,因为当我为美国/凤凰城或美国/洛杉矶的抵消时,我得到了预期的结果。我不确定美国/芝加哥会出现什么问题,请提出一种调试方法。
不确定这是否可以作为线索,但函数DateTimeZone :: listIdentifiers();在服务器上返回416结果,其中时区正常工作,在服务器上返回415,其中包含美国/芝加哥时区问题。