Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在ZF2中将UTC时区转换为AWST时区_Php_Date_Datetime_Zend Framework2_Timezone - Fatal编程技术网

Php 在ZF2中将UTC时区转换为AWST时区

Php 在ZF2中将UTC时区转换为AWST时区,php,date,datetime,zend-framework2,timezone,Php,Date,Datetime,Zend Framework2,Timezone,我试图转换以下代码的时区,这是工作良好,除了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”或其他正常工作的内容。专家们可以帮我解决这个问题

我试图转换以下代码的时区,这是工作良好,除了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”或其他正常工作的内容。专家们可以帮我解决这个问题。

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

  • 它们通常表示“半”时区;例如,“欧洲/伦敦”在“GMT”和“BST”之间切换
  • 它们可能是模棱两可的——例如,“CST”在不同的地方(在不同的历史时期)意味着不同的东西
  • 不同的地方在一年中的不同时间在不同的缩写之间切换
如果您可以为您关心的地方获得正确的时区ID,那么在整个历史过程中,假设时区数据是完整和准确的,这应该会为您提供正确的本地时间

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

$timeZone = "Australia/Perth"

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

  • 它们通常表示“半”时区;例如,“欧洲/伦敦”在“GMT”和“BST”之间切换
  • 它们可能是模棱两可的——例如,“CST”在不同的地方(在不同的历史时期)意味着不同的东西
  • 不同的地方在一年中的不同时间在不同的缩写之间切换
如果您可以为您关心的地方获得正确的时区ID,那么在整个历史过程中,假设时区数据是完整和准确的,这应该会为您提供正确的本地时间

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

$timeZone = "Australia/Perth"

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

  • 它们通常表示“半”时区;例如,“欧洲/伦敦”在“GMT”和“BST”之间切换
  • 它们可能是模棱两可的——例如,“CST”在不同的地方(在不同的历史时期)意味着不同的东西
  • 不同的地方在一年中的不同时间在不同的缩写之间切换
如果您可以为您关心的地方获得正确的时区ID,那么在整个历史过程中,假设时区数据是完整和准确的,这应该会为您提供正确的本地时间

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

$timeZone = "Australia/Perth"

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

  • 它们通常表示“半”时区;例如,“欧洲/伦敦”在“GMT”和“BST”之间切换
  • 它们可能是模棱两可的——例如,“CST”在不同的地方(在不同的历史时期)意味着不同的东西
  • 不同的地方在一年中的不同时间在不同的缩写之间切换
如果您可以为您关心的地方获得正确的时区ID,那么在整个历史过程中,假设时区数据是完整和准确的,这应该会为您提供正确的本地时间

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

$timeZone = "Australia/Perth"

那么,您已经得到的代码会发生什么情况呢?这就是我得到的问题=>PHP致命错误:未捕获异常“exception”,消息“DateTimeZone::\uu construct():未知或错误时区(AWST)”正确。我建议您将此添加到问题中,以后提问时请包括所有相关信息。请尝试
$dt=new\DateTime(@$date”)$dt->setTimezone(新建\日期时区('Australia/Perth'));echo$dt->格式('Y/m/d H:i:s')。看。那么您已经得到的代码会发生什么情况呢?这就是我得到的问题=>PHP致命错误:未捕获异常“exception”,消息“DateTimeZone::\uu construct():未知或错误时区(AWST)”对。我建议您将此添加到问题中,以后提问时请包括所有相关信息。请尝试
$dt=new\DateTime(@$date”)$dt->setTimezone(新建\日期时区('Australia/Perth'));echo$dt->格式('Y/m/d H:i:s')。看。那么您已经得到的代码会发生什么情况呢?这就是我得到的问题=>PHP致命错误:未捕获异常“exception”,消息“DateTimeZone::\uu construct():未知或错误时区(AWST)”对。我建议您将此添加到问题中,以后提问时请包括所有相关信息。请尝试
$dt=new\DateTime(@$date”)$dt->setTimezone(新建\日期时区('Australia/Perth'));echo$dt->格式('Y/m/d H:i:s')。看。那么您已经得到的代码会发生什么情况呢?这就是我得到的问题=>PHP致命错误:未捕获异常“exception”,消息“DateTimeZone::\uu construct():未知或错误时区(AWST)”对。我建议您将此添加到问题中,以后提问时请包括所有相关信息。请尝试
$dt=new\DateTime(@$date”)$dt->setTimezone(新建\日期时区('Australia/Perth'));echo$dt->格式('Y/m/d H:i:s')。看见