操作时如何计算时差minutes:seconds.tenth
?
例如我怎样才能实现这个例子:40:24.5 - 67:52.4 = -27:27.9
我本来打算用这个,但后来发现缺少十分之一:
$time1 = new date('40:24.5');
$time2 = new date('67:52.4');
$interval = $time1->diff($time2);
echo $interval->format('%R%%i:%s:??');
就像您已经“尝试过”一样,您可以使用DateTime http://php.net/manual/en/book.datetime.php扩大:
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 https://eval.in/88034
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)