我一直被php日期时间转换所困扰。我必须将动态时间字符串(如"d天X小时Y分钟")转换为总分钟数。此时间字符串是动态的,由某些第三方API返回。这可能像"X小时Y分钟"、"Y分钟"等。
如果有人对此有任何线索,请帮帮我。
提前谢谢。
正如乔回答的那样,在你的路上有一点推力。注意前面的+,我们正在添加。当然,我们可以将它们都转换为日期对象,并执行diff()来获得上面提到的DateInterval。
$apiTimeStamp = strtotime("+1 weeks 2 days 4 hours 2 seconds");
echo abs($apiTimeStamp - time()) / 60;
你可以试试这个:
<?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);
?>