在 php 中使用 pr. 圈数时间 (h:mm:ss.000)


Working with pr. lap times in php (h:mm:ss.000)

我正在查询一个 webapi,并以这种格式返回单圈时间。我想在这个圈数上添加等,以获得总时间、平均值等。但我似乎无法发现解析这种格式所需的函数。

0:00:20.1280:00:40.1280:00:28.128

知道如何做到这一点吗?

手动解析相当容易。要将其转换为以毫秒为单位的时间量(这可能是您想要做的),只需执行以下操作:

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";
}