使用PHP将字符串转换为秒

时间:2016-06-23 14:37:27

标签: php strtotime

我在PHP中使用字符串'6m15s',我希望将其转换为时间或理想的秒数。我正在使用strtotime()函数,如:

$time = date('H:i:s', strtotime('6m15s'));
echo $time;

但我得到'01:00:00'。这是否可以转换我的字符串,如果是这样,最好的方法是什么?

3 个答案:

答案 0 :(得分:3)

您可以使用substr()

$string = '6m15s';
$minute = substr($string, 0, 1);
$second = substr($string, 2, 2);
echo date('H:i:s', strtotime("00:$minute:$second"));
// outputs 00:06:15

答案 1 :(得分:2)

如果你想获得总秒数,那么就像:

preg_match('/((?<h>[\d]+)h)?((?<m>[\d]+)m)?((?<s>[\d]+)s?)/', $var, $m);

echo ($m['h']* 60 + $m['m']) * 60 + $m['s'];  // 375

这也会查看小时数,例如1h6m15s

答案 2 :(得分:0)

如果您正在使用修复模式,那么您可以构建一个方法,如:

function stringToSecondByPattern($subject, $pattern = '/(\d+)m(\d+)s/') {

    $matches = [];
    preg_match($pattern, $subject, $matches);

    list($original, $minuets, $seconds) = $matches;

    $secondsSum = $seconds + ($minuets * 60);

    return $secondsSum;
}

print stringToSecondByPattern('6m15s');