Секунды в минуты, часы, дни

Две 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);
PHP

Результат:

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 секунд
PHP
04.07.2019, обновлено 05.03.2021
10477
Предыдущая запись Обрезка текста для анонса
Следующая запись Часовые пояса в PHP

Комментарии

, чтобы добавить комментарий.

Другие публикации

Часовые пояса в PHP
Список временных зон, совместимых с PHP
8885
0
Календарь jQuery UI Datepicker
DatePicker – хороший и функциональный плагин для выбора даты, легко настраивается и привязывается к стандартному полю ввода формы.
44464
+1
Календарь на PHP
PHP-класс для вывода календаря на месяц, год или любой другой интервал с возможностью выделить отдельные даты и вывести к ним подсказки.
10075
+2
Склонение слов после числительных в PHP
В интернет магазинах, CRM и других сервисах для «правильности» есть необходимость склонять существительных после чисел...
10987
+3
Поиск похожих статей на PHP + MySQL
Один из вариантов поиска похожих статей в базе данных основан на схождении слов в двух текстах.
2865
+2
Генерация счета на оплату PDF PHP
С помощью расширения dompdf можно легко сформировать PDF файл. По сути, dompdf - это конвертер HTML в PDF который...
39832
+25