Php 如何将日期间隔字符串转换为秒?

Php 如何将日期间隔字符串转换为秒?,php,regex,datetime,Php,Regex,Datetime,在youtube数据API中,我得到如下响应: 将PT1M20转换为秒… { "items": [ { "kind": "youtube#video", "etag": "\"jOXstHOM20qemPbHbyzf7ztZ7rI/nqqiS3qfiG_sVIXsu6EXwft5FcI\"", "id": "cIHdPva1Wdg", "contentDetails": { "duration": "PT1M20S"

在youtube数据API中,我得到如下响应:

将PT1M20转换为秒…

 {
   "items": [
   {
      "kind": "youtube#video",
      "etag": "\"jOXstHOM20qemPbHbyzf7ztZ7rI/nqqiS3qfiG_sVIXsu6EXwft5FcI\"",
      "id": "cIHdPva1Wdg",
      "contentDetails": {
         "duration": "PT1M20S",
         "dimension": "2d",
         "definition": "sd",
         "caption": "false",
         "licensedContent": false
       }
   }
 ] 
}
我需要将持续时间转换为秒以显示其长度。任何时间我都能做到。或者我需要使用正则表达式来实现它。

您可以创建一个新对象,然后简单地以秒为单位计算时间间隔,例如

$di = new DateInterval("PT1M20S");
echo ($di->days * 3600 * 24) + ($di->h * 3600) + ($di->i * 60) + $di->s;

删除了我的答案,因为我认为答案已经完成了Javascript@KA_lin这也很有帮助。。。
<?php

$duration = 'PT1M28S';

echo durationToSeconds($duration);

function durationToSeconds($duration)
{
    $date = new DateTime;

    $current = $date->getTimestamp();

    $date->add(new DateInterval($duration));

    return $date->getTimestamp() - $current;
}