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