使用 openweathermap 获取当前本地时间

Get current local time using openweathermap

我正在使用 openweathermap api 从不同位置获取天气。 从这里我收到:

"sys":{"type":2,"id":2008110,"country":"CH","sunrise":1633585192,"sunset":1633626144},"timezone":7200

但我不知道如何使用 php...

获取本地时间

API 提供 UTC 时间戳和时区偏移量。

$sunrise = 1633585192;
$timezoneOffset = 7200;  //Seconds

如果 DateTime 对象是从时间戳创建的,则时区始终为 UTC。

$dt = date_create("@".$sunrise);

要获取本地时间,必须将对象转换为正确的时区。

$hhmm = sprintf("%+03d:%02d",(int)($timezoneOffset/3600),$timezoneOffset%3600); //+02:00
$dt->setTimeZone(new DateTimeZone($hhmm));
//"2021-10-07 07:39:52.000000"

现在对象具有所需的本地时间和正确的时区。