php - 将 influxdb 时间格式转换为 ISO8601 格式
问题描述
使用 influxdb PHP 客户端时,我看到这种时间格式具有纳秒精度:
2020-02-06T17:26:38.277740846Z
PHP DateTime 似乎不理解格式:
$date = DateTime::createFromFormat("Y-m-d\TH:i:s.u?",$time);
我得到false
作为返回值。
如何将其转换为 ISO8601 或自定义格式?
解决方案
DateTime 只接受最多 6 位数的微秒。字母 Z 代表时区。如果删除多余的数字,则必须使用第三个参数将时区设置为 Z。
$time = '2020-02-06T17:26:38.277740846Z';
$dateTime = DateTime::createFromFormat('Y-m-d\TH:i:s.u???\Z',$time,new DateTimeZone('Z'));
将 DateTime 对象转换为自定义格式非常容易。
echo $dateTime->format("Y-m-d H:i:s.v");
//2020-02-06 17:26:38.277
推荐阅读
- php - 您的 PHP 安装似乎缺少 WordPress Windows XAMPP 所需的 MySQL 扩展
- android - Android 卷发器
- javascript - Reactjs:无法读取未定义的属性“myProp”
- google-bigquery - 查询超出 BigQuery GROUP BY 中关于大数据的资源限制
- python - 如何找到我在公共组中写过的所有消息?
- google-cloud-pubsub - Google 课堂添加 IAM 策略绑定
- reactjs - 如何在所有页面(所有组件)ReactJs 中显示类似用户名的属性?
- c++ - SDL2 窗口不会立即关闭?
- node.js - 为什么我的 ejs 模板没有显示相关数据?
- django - Django REST Viewsets - 无法使用自定义查询集删除