我一直堅持使用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