Две PHP функции для конвертирования секунд в дни, часы, минуты.
function secToArray($secs)
{
$res = array();
$res['days'] = floor($secs / 86400);
$secs = $secs % 86400;
$res['hours'] = floor($secs / 3600);
$secs = $secs % 3600;
$res['minutes'] = floor($secs / 60);
$res['secs'] = $secs % 60;
return $res;
}
$array = secToArray(167);
print_r($array);
Результат:
Array(
[days] => 0
[hours] => 0
[minutes] => 2
[secs] => 47
)
Понадобится функция для склонения числительных.
function num_word($value, $words, $show = true)
{
$num = $value % 100;
if ($num > 19) {
$num = $num % 10;
}
$out = ($show) ? $value . ' ' : '';
switch ($num) {
case 1: $out .= $words[0]; break;
case 2:
case 3:
case 4: $out .= $words[1]; break;
default: $out .= $words[2]; break;
}
return $out;
}
function secToStr($secs)
{
$res = '';
$days = floor($secs / 86400);
$secs = $secs % 86400;
$res .= num_word($days, array('день', 'дня', 'дней')) . ', ';
$hours = floor($secs / 3600);
$secs = $secs % 3600;
$res .= num_word($hours, array('час', 'часа', 'часов')) . ', ';
$minutes = floor($secs / 60);
$secs = $secs % 60;
$res .= num_word($minutes, array('минута', 'минуты', 'минут')) . ', ';
$res .= num_word($secs, array('секунда', 'секунды', 'секунд'));
return $res;
}
echo secToStr(167); // 0 дней, 0 часов, 2 минуты, 47 секунд
echo secToStr(12345678); // 142 дня, 21 час, 21 минута, 18 секунд