функция time ago и склонение

Тема в разделе "Как сделать...", создана пользователем m1ko, 5 июл 2014.

  1. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    Рябзи помогите пожалуйста, я гуглил но все для меня размыто как-то.
    Мне нужна такая функция
    Идет запись в базу там в ячейке передается значение из time();
    Вот нужна функция которая потом ее читает и сравнивает и пишет в формате только что/минуту назад/ 5 минут и ь.д.
    со склонением 2 дня / 7 дней / 1 год / 2 годА назад
    Если можно еще с учитываением часового пояса
    Кто поможет решить от души вообще респект)

    Вот такой пример был, но он не рабит


    Код:
        public function Num($number, $titles)
        {
            $cases = array(2, 0, 1, 1, 1, 2);
            return $number.' '.$titles[ ($number%100>4 && $number%100<20) ? 2 : $cases[($number%10<5) ? $number%10:5] ];
        }
      
        public function timeAgo($time){
            $titles = array("минуту","минуты","минут");
            $titles2 = array("час","часа","часов");
            $titles3 = array("день","дня","дней");
            $titles4 = array("месяц","месяца","месяцев");
            $about = " назад";
            $now = "Только что";
          
            $new_time = time();
            $time = $new_time - $time;
            if($time < 60) return $now; else
            if($time < 3600) return engine::Num(($time-($time%60))/60, $titles).$about; else
            if($time < 86400) return engine::Num(($time-($time%3600))/3600, $titles2).$about; else
            if($time < 2073600) return engine::Num(($time - ($time % 86400)) / 86400, $titles3).$about; else
            if($time < 62208000) return engine::Num(($time - ($time % 2073600)) / 2073600, $titles4).$about;  
        }
     
  2. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    Уже сделал решение, если можно удалите тему или закройте, кому пригодится пишите личку кину код