如何转换' X小时Y分钟'时间字符串在php中的z分钟

时间:2014-09-26 10:40:30

标签: php datetime

我一直坚持使用php日期时间转换。我必须将动态时间字符串(如'd days X hours Y minutes')转换为总分钟数。此时间字符串是动态的,并由某些第三方API返回。这可能就像'X小时Y分钟','Y分钟'等。

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

提前致谢。

3 个答案:

答案 0 :(得分:1)

乔回答说,这里有点推动。注意前面的+,正如我们正在添加的那样。我们可以把它们都变成日期对象,然后做一个diff()来获得提到的DateInterval。

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

答案 1 :(得分:0)

你可以试试这个:

<?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"."'";
?>

答案 2 :(得分:0)

<?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);
  ?>