我一直坚持使用php日期时间转换。我必须将“d天X小时Y分钟”这样的动态时间字符串转换为总分钟数。这段时间的字符串是动态的,并由一些第三方API返回。这可能像'X小时Y分钟','Y分钟'等。如何将'X小时Y分钟'的时间字符串转换为z分钟php
如果有人对此有任何线索,请帮助我。
在此先感谢。
我一直坚持使用php日期时间转换。我必须将“d天X小时Y分钟”这样的动态时间字符串转换为总分钟数。这段时间的字符串是动态的,并由一些第三方API返回。这可能像'X小时Y分钟','Y分钟'等。如何将'X小时Y分钟'的时间字符串转换为z分钟php
如果有人对此有任何线索,请帮助我。
在此先感谢。
乔回答说,在这里用自己的方式轻轻一推。正如我们所添加的,请注意前面的+。我们可以将它们都转换为日期对象,并执行diff()来获得提到的DateInterval。
$apiTimeStamp = strtotime("+1 weeks 2 days 4 hours 2 seconds");
echo abs($apiTimeStamp - time())/60;
感谢Ciccio,这个解决方案正如我期待的那样工作。 – 2014-09-26 11:38:08
你可以试试这个:
<?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"."'";
?>
<?php
$apistring = "10 Hours 15 Minutes";
preg_match("#([\d]+)[/\s]+(?i)(?=hours)#", $apistring, $hours);
preg_match("#([\d]+)[/\s]+(?i)(?=minutes)#", $apistring, $minutes);
if (is_numeric($hours[1])==true) {
$intHourMinutes = $hours[1]*60;
}
else {
$intHourMinutes = 0;
}
if (is_numeric($minutes[1])==true) {
$intMinutes = $minutes[1];
}
else {
$intMinutes = 0;
}
$totalminutes=$intHourMinutes+$intMinutes;
print_r($totalminutes);
?>
考查['DateInterval'](http://php.net/manual/en/dateinterval.format.php)和['的strtotime()'](http://uk1.php.net /manual/en/function.strtotime.php) – Joe 2014-09-26 10:42:52
此API是否提供其他格式? – George 2014-09-26 10:43:32
如何使用正则表达式分别返回小时和分钟。例如: ([\ d] +)[\ s] +(?i)(?=小时) ([\ d] +)[\ s] +(?i)(?=分钟) – nire 2014-09-26 10:45:39