首页 > 解决方案 > PHP将时间从DialogFlow转换为时间

问题描述

我正在使用 DialogFlow 获得时间,时间格式类似于“2020-08-28T14:00:00+02:00”。我需要获取存储在数据库中的时间之间的减法(格式:“H:i:s”->“12:01:00”);

                    $time = $res2["Results"][0]["time"]; // the time of data base
                    $time_converted = DateTime::createFromFormat("H:i:s", $time);

                    $time_end_converted = strtotime("yyyy-MM-dd'T'HH:ii:ss", $params->time_end); //time from dialogflow
                    //var_dump($time_end_converted);
                    $interval = abs($time - $time_end_converted);
                    $time_end = date('H:i:s', $interval);
                    //var_dump($time_end);

但是这两个时间之间的差异是不正确的。我认为 time_end_converted 的格式不正确。如何将时间从 DialogFlow 转换为格式为“H:i:s”的时间?

谢谢!

标签: phptimedialogflow-es-fulfillment

解决方案


最后,我意识到创建 DateTime 不需要该格式,所以我最终这样做了:

$time = $res2["Results"][0]["time"];
$time_converted = DateTime::createFromFormat("H:i:s", $time);
$time_end_converted = new DateTime($params->time_end);
$interval = $time_converted->diff($time_end_converted); 
$time_end = $interval->format("%H:%I:%S"); 
              

谢谢大家帮助我!


推荐阅读