[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Мсек в дату
medwedos
Доброго дня.

Есть таблица (html) в которую при загрузке страницы из MySql выводятся данные через цикл до последней записи.

Есть столбец с датой (срок), а она записана в миллисекундах.

Необходимо взять миллисекнды и преобразовать их в день\час\мин\сек, я для
этого пытался привернуть кем то написанный код, не вышло, т.к. я не осилил это, не могу понять как заставить это обрабатывать каждую полученную строку в цикле,а не вываливать все в одну строку.

Код обработчика миллисекнд в дату.

<?php

/**
* Преобразование секунд в секунды/минуты/часы/дни/года
*
*
@param int $seconds - секунды для преобразования
*
*
@return array $times:
* $times[0] - секунды
* $times[1] - минуты
* $times[2] - часы
* $times[3] - дни
* $times[4] - года
*
*/

function seconds2times($seconds)
{
$times = array();

// считать нули в значениях
$count_zero = false;

// количество секунд в году не учитывает високосный год
// поэтому функция считает что в году 365 дней
// секунд в минуте|часе|сутках|году

$periods = array(60, 3600, 86400, 31536000);

for ($i = 3; $i >= 0; $i--)
{
$period = floor($seconds/$periods[$i]);
if (($period > 0) || ($period == 0 && $count_zero))
{
$times[$i+1] = $period;
$seconds -= $period * $periods[$i];

$count_zero = true;
}
}


$times[0] = $seconds;
return $times;
}

?>

Это файл datarun.php я его инклюдю в индекс где должна быть выведена нормальная дата.


Вот код таблицы в цикле:

<?php

//Теперь строим таблицу с данными
if(mysql_num_rows($resultat) > 0){
$ids = 0;
while($array = mysql_fetch_array ($resultat)){
echo '<tr><td width="100">' . $array['name'] . '</td><td width="150">' . $array['authid'] . '</td><td width="110">' . $array['ip'] . '</td><td width="140">' . $array['reason'] . '</td><td width="170">' . $array['adminIp'] . '</td><td width="170">'.$array['length'].'</td></tr>';
$ids++; // увеличиваем значение $ids на 1 для следующей итерации
}
}

else{
echo 'Ошибка: В таблице нету ни одного чела.';
}
echo '</table>';
echo '<br><b><p class="bansblock">Аккаунтов всего: '.$ids.' </p></b>';
?>


'.$array['length'].' - Это массив MySql с миллисекундами, его и нужно преобразовывать.


Вот вторая часть кода преобразования миллисекнд в число, её и нужно прикрутить сюда в цикл, что бы на каждой новой строке она обрабатывала м.сек в число.

<?php
// массив секунд
$seconds = array($optimtimer);

// значения времени
$times_values = array('сек.','мин.','час.','д.','лет');

foreach ($seconds as $second)
{
echo $second . ' сек. = ';

$times = seconds2times($second);
for ($i = count($times)-1; $i >= 0; $i--)
{
echo $times[$i] . ' ' . $times_values[$i] . ' ';
}

}

?>


И как я только не пытался, преобразование работает, но вываливает все в одну строку (как видит в массиве), вместо того что бы на каждой строке отдельно выводить.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.