我正在查看一个webapi,并以这种格式返回一圈时间。我想在这个laptimes上添加等,以获得总时间,平均值等。 但我似乎无法发现我需要解析这种格式的功能。
0:00:20.128 0:00:40.128 0:00:28.128
知道如何做到这一点吗?
答案 0 :(得分:1)
这很容易手动解析。要将其转换为以毫秒为单位的时间量(这可能是您想要做的),请执行以下操作:
function lap_time_to_millis($lap) {
$components = explode('.', $lap);
$time_components = explode(':', $components[0]);
return intval($components[1])
+ intval($time_components[2]) * 1000
+ intval($time_components[1]) * 60000
+ intval($time_components[0]) * 3600000;
}
然后,要将毫秒转换为圈数格式,请使用:
function millis_to_lap_time($millis) {
$hrs = intval($millis / 3600000);
$mins = str_pad(intval($millis / 60000) % 60, 2, '0', STR_PAD_LEFT);
$secs = str_pad(intval($millis / 1000) % 60, 2, '0', STR_PAD_LEFT);
$milli = str_pad($millis % 1000, 3, '0', STR_PAD_LEFT);
return "$hrs:$mins:$secs.$milli";
}