Подтвердить что ты не робот

Выходной сигнал находится в секундах. преобразовать в hh: mm: ss format в php

  • Мой выход находится в формате 290.52262423327 секунд. Как я могу изменить это на 00:04:51?

  • Тот же вывод, который я хочу показать в секундах и в формате HH: MM: SS, поэтому, если это секунды, я хочу показать только 290,52 секунды (только два целых числа после десятичной точки)? как я могу это сделать?

Я работаю в php, а вывод присутствует в переменной $time. хотите изменить этот $time на $newtime с помощью HH: MM: SS и $newsec как 290.52.

Спасибо:)

4b9b3361

Ответ 1

1)

function foo($seconds) {
  $t = round($seconds);
  return sprintf('%02d:%02d:%02d', ($t/3600),($t/60%60), $t%60);
}

echo foo('290.52262423327'), "\n";
echo foo('9290.52262423327'), "\n";
echo foo(86400+120+6), "\n";

печатает

00:04:51
02:34:51
24:02:06

2)

echo round($time, 2);

Ответ 2

Попробуйте этот

echo gmdate("H:i:s", 90);

Ответ 3

$iSeconds = 290.52262423327;
print date('H:i:s', mktime(0, 0, $iSeconds));

Ответ 4

Попробуйте следующее:

$time = 290.52262423327;
echo date("h:i:s", mktime(0,0, round($time) % (24*3600)));

Ответ 5

Попробуйте это:)

private function conversionTempsEnHms($tempsEnSecondes)
    {
        $h = floor($tempsEnSecondes / 3600);
        $reste_secondes = $tempsEnSecondes - $h * 3600;

        $m = floor($reste_secondes / 60);
        $reste_secondes = $reste_secondes - $m * 60;

        $s = round($reste_secondes, 3); 
        $s = number_format($s, 3, '.', '');

        $h = str_pad($h, 2, '0', STR_PAD_LEFT);
        $m = str_pad($m, 2, '0', STR_PAD_LEFT);
        $s = str_pad($s, 6, '0', STR_PAD_LEFT);

        $temps = $h . ":" . $m . ":" . $s;

        return $temps;
    }

Ответ 7

1)

$newtime = sprintf( "%02d:%02d:%02d", $time / 3600, $time / 60 % 60, $time % 60 );

2)

$newsec = sprintf( "%.2f", $time );

Ответ 8

Я не знаю, является ли это наиболее эффективным способом, но если вам также нужно показывать дни, это работает:

function foo($seconds) { 
$t = round($seconds); 
return sprintf('%02d  %02d:%02d:%02d', ($t/86400%24), ($t/3600) -(($t/86400%24)*24),($t/60%60), $t%60);
}

Ответ 9

echo date('H:i:s',$time);

echo number_format($time,2);