我在PHP中使用字符串'6m15s',我希望将其转换为时间或理想的秒数。我正在使用strtotime()
函数,如:
$time = date('H:i:s', strtotime('6m15s'));
echo $time;
但我得到'01:00:00'。这是否可以转换我的字符串,如果是这样,最好的方法是什么?
答案 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');