如何在php中将“X小时Y分钟”时间字符串转换为z分钟

如何在php中将“X小时Y分钟”时间字符串转换为z分钟,php,datetime,Php,Datetime,我一直被php日期时间转换所困扰。我必须将动态时间字符串(如“d天X小时Y分钟”)转换为总分钟数。这个时间字符串是动态的,由第三方API返回。这可能像“X小时Y分钟”、“Y分钟”等 如果有人对此有任何线索,请帮助我 提前感谢。您可以尝试以下方法: <?php $min=0; $arr = '1 hours 20 minutes'; $a=explode(' ',$arr); if($a[1] == 'hours') { $min = $min+ $a[0]*60; } if($

我一直被php日期时间转换所困扰。我必须将动态时间字符串(如“d天X小时Y分钟”)转换为总分钟数。这个时间字符串是动态的,由第三方API返回。这可能像“X小时Y分钟”、“Y分钟”等

如果有人对此有任何线索,请帮助我

提前感谢。

您可以尝试以下方法:

<?php
$min=0; 
$arr = '1 hours 20 minutes';

$a=explode(' ',$arr);
if($a[1] == 'hours')
{
    $min = $min+ $a[0]*60;
}
if($a[3] == 'minutes')
{
    $min =$min+ $a[2];
}
if($a[1] == 'minutes')
{
    $min = $min+ $a[0];
}
echo "'".$min." minutes"."'";
?>

正如乔回答的那样,这里有一个小小的推动你的方式。请注意前面的+符号,因为我们正在添加。当然,我们可以将它们都转换为日期对象,并进行区分以获得所提到的日期间隔

$apiTimeStamp   = strtotime("+1 weeks 2 days 4 hours 2 seconds");
echo abs($apiTimeStamp - time()) / 60;

看看这个API是否提供了其他格式?使用正则表达式分别返回小时和分钟怎么样。例如:[\d]+[\s]+?i?=hours[\d]+[\s]+?i?=minutesGeorge,没有其他方法可以从API获取特定的时间格式。这是主要问题。@VinodKumar那么您能给出一个字符串示例吗?
$apiTimeStamp   = strtotime("+1 weeks 2 days 4 hours 2 seconds");
echo abs($apiTimeStamp - time()) / 60;