Есть такая функция, я хочу показывать действия (Например: создалась запись в Mysql) которые были некоторое время назад.
Как и где применить эту функцию?
К примеру:
5 минут назад.
Коля написал что Вася дурак.
Чета я не врублюсь как эту функцию применить, помогите?
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
function HumanDate($date) {
$date = strtotime($date);
$diff = time() - $date;
if ($diff < 0) {
//для прошлого
$days = ceil($diff / 86400);
} else {
//для будущего
$days = floor($diff / 86400);
}
$hd = '';
if ($days == 0) {
//сегодня
$hd = 'сегодня в ' . date('H:i', $date);
} else {
if ($days > 0) {
//прошлое
switch ($days) {
case 1:
$hd = 'вчера в ' . date('H:i', $date);
break;
case 2:
$hd = 'позавчера в ' . date('H:i', $date);
break;
}
} else {
//будущее
switch ($days) {
case -1:
$hd = 'завтра в ' . date('H:i', $date);
break;
case -2:
$hd = 'послезавтра в ' . date('H:i', $date);
break;
case -3:
$hd = 'через три дня';
break;
}
}
}
if ($hd == '') {
$hd = date('d.m.Y H:i', $date);
}
return '<acronym title="' . date('d.m.Y H:i', $date) . ', ' . self::$weekdays[date('N', $date)] . '">' . $hd . '</acronym>';
}
function HumanDatePrecise($date) {
$r = false;
$a = preg_split("/[:\.\s-]+/", $date);
$d = time() - strtotime($date);
if ($d > 0) {
if ($d < 3600) {
//минут назад
switch (floor($d / 60)) {
case 0:
case 1:
return "<acronym title='$date'>только что</acronym>";
break;
case 2:
return "<acronym title='$date'>только что</acronym>";
break;
case 3:
return "<acronym title='$date'>три минуты назад</acronym>";
break;
case 4:
return "<acronym title='$date'>четыре минуты назад</acronym>";
break;
case 5:
return "<acronym title='$date'>пять минут минуты назад</acronym>";
break;
default:
return "<acronym title='$date'>" . floor($d / 60) . ' мин. назад</acronym>';
break;
};
} elseif ($d < 18000) {
//часов назад
switch (floor($d / 3600)) {
case 1:
return "<acronym title='$date'>час назад</acronym>";
break;
case 2:
return "<acronym title='$date'>два часа назад</acronym>";
break;
case 3:
return "<acronym title='$date'>три часа назад</acronym>";
break;
case 4:
return "<acronym title='$date'>четыре часа назад</acronym>";
break;
};
} elseif ($d < 172800) {
//сегодня
//2011-07-14 16:20:44
// 0 1 2 3 4 5
if (date('d') == $a[2]) {
return "<acronym title='$date'>сегодня в {$a[3]}:{$a[4]}</acronym>";
}
if (date('d', time() - 86400) == $a[2]) {
return "<acronym title='$date'>вчера в {$a[3]}:{$a[4]}</acronym>";
}
if (date('d', time() - 172800) == $a[2]) {
return "<acronym title='$date'>позавчера в {$a[3]}:{$a[4]}</acronym>";
}
}
} else {
////////////////////////////////////////////////////////////////////////////////////////
// В будущем <editor-fold defaultstate="collapsed" desc="В будущем">
$d *= - 1;
if ($d < 3600) {
//минут назад
switch (floor($d / 60)) {
case 0:
case 1:
return "<acronym title='$date'>сейчас</acronym>";
break;
case 2:
return "<acronym title='$date'>через две минуты</acronym>";
break;
case 3:
return "<acronym title='$date'>через три минуты</acronym>";
break;
case 4:
return "<acronym title='$date'>через четыре минуты</acronym>";
break;
case 5:
return "<acronym title='$date'>через пять минут</acronym>";
break;
default:
return "<acronym title='$date'>через " . floor($d / 60) . ' мин.</acronym>';
break;
};
} elseif ($d < 18000) {
//часов назад
switch (floor($d / 3600)) {
case 1:
return "<acronym title='$date'>через час</acronym>";
break;
case 2:
return "<acronym title='$date'>через два часа</acronym>";
break;
case 3:
return "<acronym title='$date'>через три часа</acronym>";
break;
case 4:
return "<acronym title='$date'>через четыре часа</acronym>";
break;
};
} elseif ($d < 172800) {
//сегодня
//2011-07-14 16:20:44
// 0 1 2 3 4 5
if (date('d') == $a[2]) {
return "<acronym title='$date'>сегодня в {$a[3]}:{$a[4]}</acronym>";
}
if (date('d', time() - 86400) == $a[2]) {
return "<acronym title='$date'>завтра в {$a[3]}:{$a[4]}</acronym>";
}
if (date('d', time() - 172800) == $a[2]) {
return "<acronym title='$date'>послезавтра в {$a[3]}:{$a[4]}</acronym>";
}
}
$d *= - 1;
//, В будущем </editor-fold>
////////////////////////////////////////////////////////////////////////////////////////.
}
$r = "{$a[2]}.{$a[1]}";
if ($a[0] != date('Y') OR $d > 0) {
$r .= '.' . $a[0];
}
$r .= " {$a[3]}:{$a[4]}";
$date.= ', ' . self::$weekdays[(int) date('N', strtotime($date))];
return "<acronym title='$date'>$r</acronym>";
}