PHP-将字符串时区格式转换为偏移量整数

PHP-将字符串时区格式转换为偏移量整数,php,datetime,timezone,timezone-offset,Php,Datetime,Timezone,Timezone Offset,非常简单: PHP以以下格式返回时区: "America/Los_Angeles" 我想将其转换为: -7 我找到了许多代码来转换它,用自定义函数计算差异。。但作为一个极简主义者,我不敢相信没有一种更简单的方法(也许是datetime函数)可以立即获得值。。有人知道这件事吗 $dateTimeZone = new DateTimeZone("America/Los_Angeles"); $date = new DateTime(null, $dateTimeZone); echo $date

非常简单:

PHP以以下格式返回时区:

"America/Los_Angeles"
我想将其转换为:

-7
我找到了许多代码来转换它,用自定义函数计算差异。。但作为一个极简主义者,我不敢相信没有一种更简单的方法(也许是datetime函数)可以立即获得值。。有人知道这件事吗

$dateTimeZone = new DateTimeZone("America/Los_Angeles");
$date = new DateTime(null, $dateTimeZone);
echo $dateTimeZone->getOffset($date)/60/60;


PHP使用来自的标准时区

“美国/洛杉矶”与-7不同-7是“时区偏移”,而不是“时区”。在中读取“时区!=偏移量”

假设
“America/Los_Angeles”
代表美国太平洋时间,在太平洋昼时(PDT)只有-7。今年剩下的时间是太平洋标准时间(PST),即-8

John答案中提供的代码将正确地为您提供时区用于当前日期和时间的偏移量。认识到该值将根据运行代码的时间而变化


此外,您应该意识到,尽管您可以在任何特定时刻确定特定时区的偏移量,但情况并非如此。你不能把-7当作一个时区,指望有人能告诉你这是太平洋夏令时。认为-7也适用于亚利桑那州全年使用的山区标准时间。

< P>使用标准时区。

“美国/洛杉矶”与-7不同-7是“时区偏移”,而不是“时区”。在中读取“时区!=偏移量”

假设
“America/Los_Angeles”
代表美国太平洋时间,在太平洋昼时(PDT)只有-7。今年剩下的时间是太平洋标准时间(PST),即-8

John答案中提供的代码将正确地为您提供时区用于当前日期和时间的偏移量。认识到该值将根据运行代码的时间而变化

此外,您应该意识到,尽管您可以在任何特定时刻确定特定时区的偏移量,但情况并非如此。你不能把-7当作一个时区,指望有人能告诉你这是太平洋夏令时。认为-7也适用于亚利桑那州全年使用的山地标准时间。