我得到了这个数字:116041(是毫秒)。
我想转换成这样的分钟:秒:毫秒
从理论上讲,这个数字应该转化为:1:56:xx
我正在尝试这段代码:
$diff = 116041;
$date = date("i:s:u",$diff);
echo $date;
但是我得到了这个输出:
14:01:000000
date()
采用时间戳整数。您提供的值等于Friday, January 2, 1970 8:14:01 AM
。注意14:01
?这就是你使用date("i:s:u",$diff);
得到的
去Epoch Converter并进入116041
进入田地,你可以自己看看。
这应该是非常简单的数学。
// Get the minutes (60000ms per minute)
$milliseconds = 116041;
$minutes = floor(116041 / 60000);
// Find the remaining milliseconds
$milliseconds = $milliseconds % 60000;
// Continue to seconds calculation...
在这种情况下,date
或DateTime
路线更复杂。做一些简单的数学......
$s = 116041 / 1000;
printf("%d:%02.3f", intdiv($s, 60), fmod($s, 60));
你可以尝试这种方法。如果对您有任何帮助,请告诉我。
<?php
function formatMilliseconds($milliseconds) {
$seconds = floor($milliseconds / 1000);
$minutes = floor($seconds / 60);
$hours = floor($minutes / 60);
$seconds = $seconds % 60;
$minutes = $minutes % 60;
$milliseconds = $milliseconds % 1000;
$format = '%u:%02u:%02u.%02u';
$time = sprintf($format, $hours, $minutes, $seconds, $milliseconds);
return rtrim($time, '0');
}
echo formatMilliseconds(2000202123);
?>