将UTC时区转换为ZF2中的AWST时区



我正在尝试用下面的一段代码转换时区,除了AWST时区外,它运行良好。

$date = time();
$timeZone = "AWST";
$dt = new DateTime();
$dt->setTimestamp($date);
$dt->setTimezone(new DateTimeZone($timeZone));
echo  $dt->format('Y/m/d H:i:s');

如果我输入$timeZone="UTC"或其他正常工作的东西。专家可以帮我摆脱困境。

我怀疑问题在于您需要指定一个IANA时区ID,而不仅仅是一个缩写。由于各种原因,时区缩写确实存在问题:

  • 它们通常表示一个时区的"一半";例如,"欧洲/伦敦"在"GMT"one_answers"BST"之间切换
  • 它们可能是模棱两可的——例如,"CST"在不同的地方(在历史的不同时刻)意味着不同的事情
  • 在一年中的不同时间,不同的地方在不同的缩写之间切换

如果你能为你关心的地方获得正确的时区ID,那么在假设时区数据完整准确的情况下,这将为你提供整个历史上正确的本地时间。

就你的情况而言,我相信你想要澳大利亚/珀斯时区。试试这个:

$timeZone = "Australia/Perth"

相关内容

  • 没有找到相关文章