Here's the code, but it needs to be to celebrate. And then, wherever you want to change the output varying functions of time.
* (+/-)
function slv($str,$msg1,$msg2,$msg3 {
$str = (int)$str;
$str1 = abs($str % 100;
$str2 = $str % 10;
if ($str1 > 10 && $str1 < 20 return $str .' '. $msg3;
if ($str2 > 1 && $str2 < 5 return $str .' '. $msg2;
if ($str2 == 1 return $str .' '. $msg1;
return $str .' '. $msg3;
}
function ptimenews($t, $f="d.m.Y в H:i "{
global $user;
$time = time();
if(($time - $t == 0{
$out = 'только что';
}else
if(($time - $t <= 60{
$out = slv((($time-$t),'секунду','секунды','секунд'.' назад';
}
else if(($time - $t >= 60*60*24 && ($time - $t <= 60*60*24*2)
$out = 'вчера в ' . date("H:i", $t + $user['sdvig'] * 3600;
else if(($time - $t >= 60*60*24*2 && ($time - $t <= 60*60*24*3)
$out = 'позавчера в ' . date("H:i", $t + $user['sdvig'] * 3600;
else if($time - $t >= 60*60*24*3
$out = date($f, $t + $user['sdvig'] * 3600;
else
{
$r = $time - $t;
if($r < 3600
{
$vars = array(
'минут',
'минуту',
'минуты',
'минуты',
'минуты',
'минут',
'минут',
'минут',
'минут',
'минут'
;
$a = ($r/60 % 10;
if(($r >= 11*60 && ($r <= 20*60)
$v = $vars['0'];
else
$v = $vars[$a];
$out = floor($r/60 . ' ' . $v . ' назад';
}
else if($r >= 3600 && $r <= 60*60*24
{
$vars = array(
'часов',
'час',
'часа',
'часа',
'часа',
'часов',
'часов',
'часов',
'часов',
'часов'
;
$a = ($r/3600 % 10;
if(($r >= 11*60*60 && ($r <= 20*60*60)
$v = $vars['0'];
else
$v = $vars[$a];
$out = floor($r/3600 . ' ' . $v . ' назад';
}
}
return $out;
}П.С. переводил через гугл, не знаю все правильно написано.