【发布时间】:2020-07-14 09:39:13
【问题描述】:
我正在尝试将 Openweather API 调用提供的日出和日落 unix 纪元日期时间戳转换为我的本地日期时间。我得到了真正的差异结果。 日出值为 1594726338,日落值为 1594775338。但是,当我将其转换为本地日期时间时,日出值为 2020-07-14 17:02:18,日落值为 2020-07-15 06:38 :58,完全偏离目标。我尝试在在线日期/时间转换器网站上查找它,它们返回相同的结果。 首先我尝试了这个:
*
<?php
$uep=1594726338;
$t = date('r',$uep);
?>
然后我尝试了这个:
<?php
$uep=1594726338;
$t = date('r',$uep);
$savedtime = $t;
$servertime = ini_get('date.timezone');
$time = strtotime($savedtime . $servertime);
$dateInLocal = date("Y-m-d H:i:s", $time);
echo $dateInLocal;
?>
我在 php.ini 文件中设置了正确的日期时间。我还阅读了一些关于将 unix 纪元除以 1000 的内容。或者我没有正确转换它或误读结果?
问候,
欧辰
【问题讨论】:
-
您的第一次尝试使用我的天气数据正常工作('sunrise' => 1594695557, "2020-07-14 04:59", TimeZone:Europe/Berlin)。我认为您的问题在于调用天气 API。必须在此处指定正确的位置。
-
我使用的是坐标而不是位置。这是一个潜在的问题吗? OpenWeather API 文档说它也可以与 co-ords 一起使用......
-
不,我也用那个。您还可以在响应中检查坐标 coord->lat 和 coord->lon。
-
yuup,我得到了正确的纬度和经度。查看返回的 JSON: {"lat":25.91,"lon":-93.73,"timezone":"Etc/GMT+6","timezone_offset":-21600,"current":{"dt":1594737745,"日出":1594726338,"日落":1594775338,"温度":28.47,"feels_like":31.43,"压力":1015,"湿度":77,"露点":24.04,"uvi":11.9,"云" :28,"wind_speed":4.11,"wind_deg":196,"weather":[{"id":802,"main":"Clouds","description":"散落的云朵","icon":"03d "}]},"daily":[{"dt":1594749600,"sunrise":1594726338,"sunset":1594775338,"temp":{"day":28.96,"min":28.47,"max": 29.2,"夜晚":28.68,"eve":29.16,"morn":28.47},"feels_like":.....
-
不正确! “lon”: - 93.73 在墨西哥湾的某个地方。注意减号。
标签: php api datetime-format openweathermap