Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Помогите с выводом времени
Сообщения
Facecontrol

Как сделать так чтоб выводилось наподобии такого:
Питомец захочет есть через 1ч 59м 59с
Вот у меня идет в бд запись
mysql_query("INSERT INTO `pitomec_foots_r` (`id_user`, `food_raz`,`time`) VALUES ('$user[id]', '$korm','$time')")
И теперь нужно от реального время отнять то которое записалось в бд,и сравнить полученный результат,тоесть если он меньше 7200(это 2 часа в секундах) то выполнять один запрос,а если больше то другой.Это всё я могу сделать,но проблемма в слеедующем,как мне это вывести в браузер чтоб показать сколько времени осталось то нового кормления питомца.Только время нужно вывести не в секундах.А в формате 1ч 59м 59с

16 Мар 2013, 23:03
RuGamesMobile

Facecontrol, // перевод времени в дни/часы/минуты/секунды от текущего времени
function makestime($string) {

$text = '';

if($string - time() > 86399){

$day = int( ( $string - time() )/86400 );
$text = $day.' дн. ';
}else{
$day = 0;
}

if( ($string - ($day * 86400)) - time() > 3599 ){

$hours = int( ( ($string - ($day * 86400)) - time() )/3600 );
$text .= $hours.' ч. ';
}else{
$hours = 0;
}

if( ($string - ($day * 86400) - ($hours * 3600)) - time() > 59 ){

$min = int( ( ($string - ($day * 86400) - ($hours * 3600)) - time() )/60 );
$text .= $min.' м. ';
}else{
$min = 0;
}

if( ($string - ($day * 86400) - ($hours * 3600) - ($min * 60)) - time() > 0 ){

$sec = int( ($string - ($day * 86400) - ($hours * 3600) - ($min * 60)) - time() );
$text .= $sec.' с. ';
}else{
$sec = 0;
}

return $text;
}

16 Мар 2013, 23:06
Facecontrol

RuGamesMobile, не,для меня это сильно сложно пока,а проще можно как-то?

16 Мар 2013, 23:29
IceJOKER

Facecontrol, сложно вызвать функцию ?

16 Мар 2013, 23:36
Facecontrol

Я вот не понимаю к чему $string

16 Мар 2013, 23:40
IceJOKER

Facecontrol, по ходу время которое ты передаешь в функцию

16 Мар 2013, 23:45
RuGamesMobile

IceJOKER, совершенно точно, туда отправляешь время окончания действия, а функция разбивает секунды на часы/минуты/секунды

16 Мар 2013, 23:47
Facecontrol

Я правильно функцию вызываю?
function makestime($string);

17 Мар 2013, 0:06
TOOZ

Facecontrol, echo makestime($string);

17 Мар 2013, 0:10
Facecontrol

Я вот нашёл вот такой способ,для меня он проще.

<?php

// забирает текущее время в массив
$timestamp = time();
echo $timestamp;
echo '<p>';
$date_time_array = getdate($timestamp);

$hours = $date_time_array['hours'];
$minutes = $date_time_array['minutes'];
$seconds = $date_time_array['seconds'];
$month = $date_time_array['mon'];
$day = $date_time_array['mday'];
$year = $date_time_array['year'];

// используйте mktime для обновления UNIX времени
$timestamp = mktime($hours,$minutes,$seconds,$month,$day,$year);
echo $hours.'<b>:</b>'.$minutes.'<b>:</b>'.$seconds;

?>

Но есть проблемма,если я из бд беру данные(время) которое я туда записывал и вставляю вместо функции time() то у меня выводится время 3:0:0 хотя запись была совершена в другое время
добавлено спустя 15 минут:
Всё я разобрался всем спасибо

17 Мар 2013, 0:43
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.