php - openweather unix datetimestamp to local datetime in php
问题描述
我正在尝试将 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 的内容。或者我没有正确转换它或误读结果?
问候,
奥臣
解决方案
时间戳始终为 UTC,因此您需要将其转换为本地区域,例如:
$ts = 1560281377;
$dt = new DateTime('@' . $ts);
$dt->setTimezone(new DateTimeZone('Asia/Tokyo'));
echo $dt->format('Y-m-d H:i:s');
推荐阅读
- java - Android MediaPlayer 没有调用注册的监听器
- qt - 在 Qt 中显示 QML 地图时显示修改后的 txt 文件
- asp.net - SignalR - Clients.All 方法发送到错误的页面
- javascript - 当父组件内部发生更改时,子组件的本地状态会更改:ReactJS
- javascript - 如何使用 javascript 在 foreach() 中进行函数调用
- r - 查找字符串的一部分并更新另一列
- jquery - 检查单击触发事件是否来自按钮 a 或 b
- gradle - Spring-batch 无法在 Windows 10 上构建
- python - Python列表打印元素的字符而不是整个元素
- jpeg - Can I create a MJPEG stream from an H.264 I-Frame stream?