我在PHP中有一个字符串'6m15s',我希望将其转换成时间或者理想情况下是秒数。我使用strtotime()
函数,例如:
$time = date('H:i:s', strtotime('6m15s'));
echo $time;
但是我得到的是'01:00:00'。是否有可能将我的字符串转换,如果可以的话,最好的方法是什么?
你可以使用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
preg_match('/((?<h>[\d]+)h)?((?<m>[\d]+)m)?((?<s>[\d]+)s?)/', $var, $m);
echo ($m['h']* 60 + $m['m']) * 60 + $m['s']; // 375
这也可以查找几小时,例如 1h6m15s
。
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');
mktime()
。6m
本身就是含糊不清的。是指6个月还是6分钟? - Marc B