2016-03-12 3 views
4

Я бы хотел конвертировать определенное количество секунд в минуты и даже часы. Но я не хочу писать предложение if за каждую минуту и ​​час и т. Д. ...PHP: конвертировать секунды в минуты и часы

Как я могу сделать это самым простым способом, и с самым легким я имею в виду кратчайший. ;)

PHP:

$countholen = mysqli_fetch_array(mysqli_query($db, " 
SELECT * FROM `blablabla` WHERE `blabla` = 'bla' 
")); 
$countholenfetch = $countholen["count"]; 
if ($countholenfetch <= 60){ 
    $count = $countholenfetch . " sec"; 
} 
if ($countholenfetch > 60){ 
    $countholenfetch = $countholenfetch - 60; 
    $count = "1 min" . " + " . $countholenfetch . " sec"; 
} 
//...if clause with 120, 180, 240 etc. instead of 60 till 3600 and another if clause in an if clause... 
echo $count; 
+6

Возможный дубликат [Преобразовать секунд час: минуты: секунды] (HTTP: // StackOverflow. com/questions/3172332/convert-seconds-to-hourminutesecond) –

+0

Попробуйте следующее: gmdate ("H: i: s", 685); от: http://stackoverflow.com/questions/3172332/convert-seconds-to-hourminutesecond – SaidTagnit

+0

Извините, не нашел, что :(@ C.Liddell – Moritz

ответ

3

Посмотрите на функцию gmdate().

$countholen = mysqli_fetch_array(mysqli_query($db, " 
SELECT * FROM `blablabla` WHERE `blabla` = 'bla' 
")); 
$countholenfetch = $countholen["count"]; 

echo gmdate("H:i:s", $countholenfetch); 

Примечание: Если вы работаете с большими числами, а затем использовать что-то вроде этого вместо

$seconds = 86401 ; 
$hours = floor($seconds/3600); 
$seconds -= $hours * 3600; 
$minutes = floor($seconds/60); 
$seconds -= $minutes * 60; 

echo "$hours:$minutes:$seconds"; //24:0:1 
+1

Если вы используете дату, 86401 будет давать результат «00:00:01». Функция даты будет работать для небольших чисел, но не больших чисел. – Phil

+1

@Phil Отличная точка, я обновил мою ответ – Tom

0

Использование мод

function convert_to_string_time($num_seconds) 
{ 
    $seconds = $num_seconds % 60; 
    $min = floor($num_second/60); 
    if($min == 0) 
     return "{$seconds} sec"; 
    else 
     return "{$min} min + {$seconds} sec"; 
} 
+0

Строка 4 (строка $ min) не нужна первая точка с запятой, она фактически приведет к ошибке. – ihateartists

+0

@ihateartists Вы правы, я ее отредактировал. Спасибо. – Phil

Смежные вопросы