Вариант плюрализации покороче
(более универсальный):
pluralForm (+/-)
public static function pluralForm($n, array $forms) {
if ( ($n % 10 == 1) && ($n % 100 != 11) )
return $forms[0];
if ( ($n % 10 >= 2) && ($n % 10 <= 4) &&
(($n % 100 < 10) || ($n % 100 >= 20)) )
return $forms[1];
return $forms[2];
}
Вот ещё вариант, правда, для тройки, но подпилить можно:
textual_date, автор XakepPRO (+/-)
function textual_date($time, $format = 'j.m.Y / H:i', $with_offset = true)
{
global $realtime, $set_user;
$server_time = $with_offset ? $realtime + $set_user['sdvig'] * 3600 : $realtime;
$user_time = $with_offset ? $time + $set_user['sdvig'] * 3600 : $time;
switch (date('jmy', $user_time)) {
case date('jmy', $server_time):
return 'Сегодня, ' . date('H:i', $user_time);
case date('jmy', $server_time - 86400):
return 'Вчера, ' . date('H:i', $user_time);
case date('jmy', $server_time - 172800):
return 'Позавчера, ' . date('H:i', $user_time);
default: return date($format, $user_time);
}
}
Показывает, дату в виде:
Сегодня, 23:00
Вчера, 12:20
Позавчера: 13:30
Для более ранних дат будет выдан обычный формат.