毫秒格式的PHP

问题描述 投票:-2回答:4

我得到了这个数字:116041(是毫秒)。

我想转换成这样的分钟:秒:毫秒

从理论上讲,这个数字应该转化为:1:56:xx

我正在尝试这段代码:

$diff = 116041;
$date = date("i:s:u",$diff);
echo $date;

但是我得到了这个输出:

14:01:000000

php date-format
4个回答
1
投票

date()采用时间戳整数。您提供的值等于Friday, January 2, 1970 8:14:01 AM。注意14:01?这就是你使用date("i:s:u",$diff);得到的

Epoch Converter并进入116041进入田地,你可以自己看看。


0
投票

这应该是非常简单的数学。

// Get the minutes (60000ms per minute)
$milliseconds = 116041;
$minutes = floor(116041 / 60000);

// Find the remaining milliseconds
$milliseconds = $milliseconds % 60000;

// Continue to seconds calculation...

0
投票

在这种情况下,dateDateTime路线更复杂。做一些简单的数学......

$s = 116041 / 1000;
printf("%d:%02.3f", intdiv($s, 60), fmod($s, 60));

0
投票

你可以尝试这种方法。如果对您有任何帮助,请告诉我。

<?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);
?>
© www.soinside.com 2019 - 2024. All rights reserved.