与pr合作php中的单圈时间(h:mm:ss.000)

时间:2014-12-14 19:09:46

标签: php time

我正在查看一个webapi,并以这种格式返回一圈时间。我想在这个laptimes上添加等,以获得总时间,平均值等。 但我似乎无法发现我需要解析这种格式的功能。

0:00:20.128 0:00:40.128 0:00:28.128

知道如何做到这一点吗?

1 个答案:

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