Понедельник, 23 Декабря 2024, 15:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
сообщения в чате...
Udo1993Дата: Вторник, 08 Января 2013, 06:00 | Сообщение # 1
был не раз
Сейчас нет на сайте
суть в чем..: как сделать чтобы время отправленных сообщений выводилось не в формате ЧЧ:ММ ( по серверу ), а к примеру: 2мин назад, 5мин назад и т.д.
donosДата: Вторник, 08 Января 2013, 14:53 | Сообщение # 2
был не раз
Сейчас нет на сайте
При заноси в БД забиваем время в формате Unix.
Далее при выводе сообщения просто пишем проверку.
Код

<?php
//Функция проверки времени по дням и т.д.
   function time_elapsed($time_passed){
      $bit = array(
          ' year'        => $time_passed / 31556926 % 12,
          ' week'       => $time_passed / 604800 % 52,
          ' day'         => $time_passed / 86400 % 7,
          ' hour'        => $time_passed / 3600 % 24,
          ' minute'     => $time_passed / 60 % 60,
          ' second'     => $time_passed % 60
          );
            
      foreach($bit as $k => $v){
          if($v > 1)$ret[] = $v . $k . 's';
          if($v == 1)$ret[] = $v . $k;
          }
      array_splice($ret, count($ret)-1, 0, ' и ');
      $ret[] = 'назад.';
        
      return join(' ', $ret);
      }
   //Получаем прошедшее время в сек
   $time_passed = Время из базы -  time();
   //Выводим
   echo "Добавлено: ".time_elapsed($time_passed);
?>


В итоги должно получиться что то типа
Добавлено: 6 days 15 hours 48 minutes и 19 seconds назад.

Ну если помудрить то на русском правильно можно написать просто более строгие правила для слов фраз 1 Год; 5 Лет и т.д.

Не проверял, но должно работать.


Сообщение отредактировал donos - Вторник, 08 Января 2013, 14:54
Udo1993Дата: Вторник, 08 Января 2013, 23:56 | Сообщение # 3
был не раз
Сейчас нет на сайте
donos, спасибо) сейчас буду пробовать)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг