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

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

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

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

Благодаря 🙂

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

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); 

Попробуй это

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

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

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

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

 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; } 

Numero uno … http://www.ckorp.net/sec2time.php (используйте эту функцию)

Numero duo … echo round(290.52262423327,2);

1)

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

2)

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

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

 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); } 
 echo date('H:i:s',$time); echo number_format($time,2);