2014-01-10 37 views
2

如何在使用minutes:seconds.tenth時計算時差?
例如,我怎樣才能實現這個例子:40:24.5 - 67:52.4 = -27:27.9PHP:時差(min:sec:十分之一)

我打算用這一點,但隨後發現了缺乏十分之一:

$time1 = new date('40:24.5'); 
$time2 = new date('67:52.4'); 
$interval = $time1->diff($time2); 
echo $interval->format('%R%%i:%s:??'); 
+0

http://php.net/manual/en/function.microtime.php – Steve

+0

@ user574632:不是真的...... –

+0

號你在哪裏找到'date'類?這個'40:3​​4.9 - 67:52.4 = +27:27.9'是什麼樣的數學? –

回答

0

像你已經「嘗試」,你可以使用DateTime擴展:

function time_difference($t1, $t2) { 
    $t1 = DateTime::createFromFormat('i:s.u', $t1, new DateTimezone('UTC')); 
    $t2 = DateTime::createFromFormat('i:s.u', $t2, new DateTimezone('UTC')); 
    $diff = $t2->diff($t1); 
    $u = $t2->format('u') - $t1->format('u'); 

    if ($u < 0) { 
     $diff = $t2->modify('-1 second')->diff($t1); 
     $u = 1000000 - abs($u); 
    } 

    $u = rtrim(sprintf('%06d', $u), '0') ?: '0'; 
    return $diff->format('%R%I:%S.') . $u; 
} 

使用例如:

echo time_difference('40:24.5', '67:52.4'); 
# -27:27.9 

demo

+0

太棒了!我怎樣才能謝謝你? – user3178893