вопрос
Ребят, всем привет!
Подскажите пожалуйста, как можно сделать в профиле пользователя и подобных в строке "Был на сайте:" отображение даты так, чтобы было не 20 марта 2015 23:19, а, например, 1 час 38 минут назад.
У меня так реализовано в новостях и комментариях при помощи хака "Timeago".
Помогите пожалуйста переделать под lastdate или хотя бы намекните как-нибудь приближенно :)
Заранее очень благодарен.
Подскажите пожалуйста, как можно сделать в профиле пользователя и подобных в строке "Был на сайте:" отображение даты так, чтобы было не 20 марта 2015 23:19, а, например, 1 час 38 минут назад.
У меня так реализовано в новостях и комментариях при помощи хака "Timeago".
<?php
if(!class_exists('TimeAgo')) {
class TimeAgo {
public function __construct ($data) {
if(strtotime($data)) {
$data = strtotime($data);
}
echo $this->timeString($data);
}
protected function timeInteger($n, &$plurals) {
$plural = ($n % 10 == 1 && $n % 100 != 11 ? 0 : ($n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 or $n % 100 >= 20) ? 1 : 2));
return $plurals[$plural];
}
protected function timeString($dt, $precision = 2) {
$times = array(
365*24*60*60 => array("год", "года", "лет"),
30*24*60*60 => array("месяц", "месяца", "месяцев"),
7*24*60*60 => array("неделя", "недели", "недель"),
24*60*60 => array("день", "дня", "дней"),
60*60 => array("час", "часа", "часов"),
60 => array("минута", "минуты", "минут"),
1 => array("секунда", "секунды", "секунд"),
);
$passed = time() - $dt;
if($passed < 5) {
$output = ' менее часа назад';
} else {
$output = array();
$exit = 0;
foreach($times as $period => $name) {
if($exit >= $precision || ($exit > 0 && $period < 60)) break;
$result = floor($passed / $period);
if ($result > 0) {
$output[] = $result . ' ' . $this->timeInteger($result, $name);
$passed -= $result * $period;
$exit++;
} else if ($exit > 0) $exit++;
}
$output = implode(' и ', $output).' назад';
}
return $output;
}
}
}
new TimeAgo($value);
Помогите пожалуйста переделать под lastdate или хотя бы намекните как-нибудь приближенно :)
Заранее очень благодарен.