apolscky, там нет ничего полезного, по крайней мере я не нашёл.путин.
#6
PHP
function time_autoformat($ts, $full = false){ if($full){ $d = ''; $t = $ts; $d1 = (floor($t/31622400)>0) ? floor($t/31622400) : ''; $d2 = (floor($t/2635200)>0) ? floor($t/2635200) % 12 : ''; $d3 = (floor($t/86400)>0) ? floor($t/86400) % 30 : ''; $d4 = (floor($t/3600)>0) ? floor($t/3600) % 24 : ''; $d5 = floor($t/60) % 60; if($d1) $d .= sklonen($d1,'год ','года ','лет '); if($d2) $d .= sklonen($d2,'месяц ','месяца ','месяцев '); if($d3) $d .= sklonen($d3,'день ','дня ','дней '); if($d4) $d .= sklonen($d4,'час ','часа ','часов '); if($d5) $d .= sklonen($d5,'минута ','минуты ','минут '); return $d; } else { $sec = $ts; $min = round($ts/60); $hour = round($ts/3600); $days = round($ts/86400); $month = round($ts/2635200); $years = round($ts/31622400); if($sec<60) return $sec.' сек.'; if($min<60) return $min.' мин.'; if($hour<24) return sklonen($hour,'час','часа','часов',false); if($days<31) return sklonen($days,'день','дня','дней',false); if($month<12) return sklonen($month,'месяц','месяца','месяцев',false); else return sklonen($years,'год','года','лет',false); }} function sklonen($n,$s1,$s2,$s3, $b = false){ $m = $n % 10; $j = $n % 100; if($m==1) $s = $s1; if($m>=2 && $m<=4) $s = $s2; if($m==0 || $m>=5 || ($j>=10 && $j<=20)) $s = $s3; if($b) $n = '<b>'.$n.'</b>'; return $n.' '.$s;}echo time_autoformat(1234, 1);В данном примере на экран высветится “20 минут”. Второй параметр принимающий булево значение указывает, возвращать строку в сокращенном или в развернутом видеть, то есть полностью писать слова “минуты”, “часы” и др. принимая в расчет склонения.Можно получить свой точный возраст вызвав типа такого: time_autoformat(time() – mktime(0, 0, 0, 8, 6, 1987), 1)Это дата моего рождения, на момент написания статьи показывало: 25 лет 2 месяца 27 дней 7 часов 10 минут
#7
ого как запутано.путин2.
А как тогда выводить строку?
пробую так:
BASH
echo '('.time_autoformat($ank['online']).')';
показует: (316 лет).путин4.
#8
это с скрипта иного? там не в этом дело.остальное думай сам.
#9
MARAZM, да я понял уже.
спасиб.путин7.
#10
Юзай так
BASH
echo '('.time_autoformat($ank['online']).',1)';
#11
Хз там как у тя идет формировка переменной онлайна, точнее какое пишется туда значение..
Если там пишется просто время, когда юзер последний раз выполнил переход на сайте, тогда юзай
PHP
echo ' Юзера небыло на сайте ('.time_autoformat(time()-$ank['online'],1).')';[/php
#12
Valen, Заносится в базу так:
1)юзер лазит по сайту, при каждом обновлении страницы заносится +1 секунда, если юзер не обновил страницу, включается подсчёт времени. Если он обновил страницу до окончания отсчёта (300 секунд), то в базу заносятся те секунды которые насчитались...
Если страница не обновлялась 300 сек то в базу ни хера не заносится).путин4.
#13
ADMINATOR, Советую те убрать эту функцию..
Оно того не стоит, что бы трепать БД по 100500 раз на сек
ну а вообще, показал те пример как той функцией перевести время с вида 123432 в дни - часы-мин
#14
Valen, да, вывод крут)
Я короче функцию переписал. теперь подсчёт секунд идёт в другом порядке и запись проводится раз в 30 мин с момента активности до момента активности.
НУ мну ненужно прям точное время перебывания на сайте, правильно? там если + - час, то и хер с ним.))
#15
так у тя будет погрешность в итоге на много часов.. Раз на пол часа+второй,третий...
Убери и не мучайся
#16
~=Admin_Sheva=~,
CSS
$ d i f = t i m e ( ) - $ ank [ ' o n l i n e ' ] ;$ s p e n d = $ ank [ ' t i m e s p e n d o n s i t e ' ] ;i f ( $ d i f < 1 2 0 ) {$ s p e n d = $ s p e n d + $ d i f ;} e l s e {$ s p e n d = $ s p e n d + 1 2 0 ;} m y s q l _ q u e r y ( " u p d a t e ` u s e r ` s e t ` t i m e s p e n d o n s i t e ` = ' " . $ s p e n d . " ' w h e r e i d = ' " . $ ank [ ' i d ' ] . " ' " );
#17
а вот вывод, только замени переменную $inf на свою,так понял $ank и в запросе к бд users на user вобщем разберешься