Продвинутая ф-ия формата времени

239
.
Вобщем нефиг было делать, дак написал такую вот функцию.
Возможности:
Функция показывает дату добавления чего-либо в формате "1 минута/час назад", если добавлено больше суток назад, то пишет "вчера в (время)", аналогично из позавчера. Если прошло больше 3 суток, то показывает обычную дату в формате "H:i:s d/m/Y"
Ну вобщем всё. Вот сама функция:

////////////////////////////////////////////
// Функция форматировки времени by Z3RO   //
////////////////////////////////////////////
// $t - дата в РНР-формате                //
// $format - формат вывода даты после 72ч //
////////////////////////////////////////////
function f_time($t, $f="H:i:s d/m/Y"){
global $set_user;
$time = time();
if($time - $t <= 60)
$out = 'меньше минуты назад';
else if(($time - $t >= 60*60*24) && ($time - $t <= 60*60*24*2))
$out = 'вчера в ' . date("H:i", $t + $set_user['sdvig'] * 3600);
else if(($time - $t >= 60*60*24*2) && ($time - $t <= 60*60*24*3))
$out = 'позавчера в ' . date("H:i", $t + $set_user['sdvig'] * 3600);
else if($time - $t >= 60*60*24*3)
$out = date($f, $t + $set_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) . '&nbsp;' . $v . '&nbsp;назад';
}
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) . '&nbsp;' . $v . '&nbsp;назад';
}
}
return $out;
}
.
Вот скриншот
Прикрепленные файлы:
.
Блиносвёрт ?
мне нравится такая функция
.
Еще один
Прикрепленные файлы:
.
Можна пример обработки времени, через эту функцию?
.
Как перевести свои скрипты под эту функцию:
вставляем функцию в /incfiles/func/php
и переделываем под эту ф-ию скрипты.
К примеру вот так выводится дата добавления сообщения в гостевую:
$text = ' <span class="gray">(' . date("d.m.y / H:i", $res['time'] + $set_user['sdvig'] * 3600) . ')</span>';


А это переделка под эту ф-ию:
$text = ' <span class="gray">Добавлено (' . f_time($res['time']) . ')</span>';
.
Сдвиг времени юзера в настройках учитываеться?
.
Z3RO
ValkoN (10.04.2011/12:54)
Сдвиг времени юзера в настройках учитываеться?
Да.
.
¤
немного громоздкая
и вообще надо старому предложить перепилить текущую ф-цию в учетом "сегодня/вчера"...
.
Кстати, если передать ф-ии в качестве второго аргумента свой формат даты типа "H:i", то после 72 часов после добавления дата будет показыватся в заданом вами формате.
Всего: 11