首页 > 解决方案 > 将 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 或自定义格式?

标签: phpdateinfluxdb

解决方案


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

推荐阅读