我正在从url检索日期`
https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics,status
&videoSyndicated=true
&type=video
&id=CRvoJEqrYTY
&key=AIzaSyD68YEP1N9J0-umFWuzMV3NEN3T5VBvoHo`作为PT1H8M21S。如何使用php将其转换为hh:mm:ss
发布于 2014-02-05 22:55:25
字符串'PT1H8M21S' it不是日期或时间。它是一个间隔(具体地说,它是一个DateInterval字符串表示)。
您需要一个基线DateTime来添加该间隔。
试着按照这些思路做些事情
$interval = $dv = new DateInterval('PT1H8M21S'); //the value you get from the url
$time = new DateTime('2000-01-01'); //any date works fine here.
// Note: Hours, mins and seconds == 0
$time->add($interval);
echo $time->format('H:i:s');首先,根据收到的字符串创建适当的DateInterval对象。
然后,创建基线DateTime对象。任何日期都可以,你只需要确保你有小时、分钟和秒(我假设间隔总是少于一整天)。
将间隔添加到基线日期,并根据需要回显小时、分钟和秒。
发布于 2014-02-05 22:58:29
尝试像这样使用str_replace函数
$time = "PT1H8M21S";
$time = str_replace("PT", "", $time);
$time = str_replace("H", ":", $time);
$time = str_replace("M", ":", $time);
$time = str_replace("S", "", $time);
echo $time;如果您喜欢,也许可以在最后一个字符串中添加零填充
发布于 2014-02-05 23:08:52
preg_match('/PT(.+)H(.+)M(.+)S$/', $str, $m3); echo $m3[1].":".$m3[2].":".$m3[3]https://stackoverflow.com/questions/21580456
复制相似问题