PHP 将 DATE+TIME+TIMEZONE 转换为 DATE+TIME+NEW-TIMEZONE PHP

PHP Converting DATE+TIME+TIMEZONE to DATE+TIME+NEW-TIMEZONE PHP

我有来自客户端的 php 输出 returns

Sat Apr 30 2022 19:23:03 GMT+0800 (China Standard Time)

我想在新时区进行转换,问题是我无法控制上面的数据 sa 我必须将所有输出转换为新时区,即布里斯班时区

像这样

$current_date_time_timezone = "Sat Apr 30 2022 19:23:03 GMT+0800 (China Standard Time)"
$timeBrisbane = new DateTimeZone('Australia/Brisbane');
$date_time_new_timezone = $date_time_new_timezone->setTimezone($timeBrisbane);
echo $date_time_new_timezone->format('Y-m-d H:i:s');

上面的输出returns错误,

我想要的输出是这样的:

输出="Sat Apr 30 2022 19:23:03 GMT+10 (Australia/Brisbane)"

您可以使用 DateTime::createFromFormat() 将该初始字符串解析为 DateTime 对象。

由于“GMT”后时区偏移量已经存在,因此我将忽略括号部分:

$current_date_time_timezone = "Sat Apr 30 2022 19:23:03 GMT+0800 (China Standard Time)";
$timeBrisbane = new DateTimeZone('Australia/Brisbane');

$date_time_new_timezone = DateTime::createFromFormat("D M j Y H:i:s \G\M\TO+", $current_date_time_timezone);
$date_time_new_timezone->setTimezone($timeBrisbane);

echo $date_time_new_timezone->format("D M j Y H:i:s \G\M\TO \(e\)");
// Sat Apr 30 2022 21:23:03 GMT+1000 (Australia/Brisbane)