Нужна помощь с выводом даты.

Печать RSS
181

Автор
Пацак
0
Здрасть, такой вопрося: имеется переменная $date, которая выводит дату регистрации юзверя в формате дд-мм-гггг. Нужно сделать, чтобы выводилось сколько юзверь провел времени после регистрации. Сообразил код

$date = "$date";

$tsmp = strtotime($date);
$seconds = time() - $tsmp;
$days = $seconds/86400;
$days = round((int)$days,1);

if ($days > 31) {
$months = $days/31;
$months = round((int)$months,0);

$days_left = $days - ($months * 31);
 
if ($days > 0) {
$srok = ' <small>(с нами уже месяцев ' . $months . ' и дней ' . $days_left . ')</small>';
} else {
$srok = ' <small>(с нами уже месяцев ' . $months . ')</small>';
}
} else {
$srok = ' <small>(с нами уже дней ' . $days . ')</small>';
}
if ($days <= 0) {
$srok = ' <small>(сегодня зареган)</small>';
}


echo 'Дата регистрации: ' . $date . $srok;

Но, при таком раскладе не совсем точно выводит. Нуна помощь в составлении более точного кода, а также может кто подскажет как обработать года.. ) smile
К

Айсберг Визави
0
Нужно от date(); вычесть дату регистрации и преобразовать в дату.
A

Оранжевые штаны
0
с годами сложнее, там все портит этот гр*** високосный год, неточность может получиться, а про месяцы ваще молчу там ваще в разнобой количество, не могли разработчики календаря сделать его равномерным с одинаковым количеством дней месяце, и в эталон времени добавить еще пару секунд чтоб не было всяких високосных приколов
Автор
Пацак
0
Azzido ну эт да, хтя в день, два неточность не оч страшно... Кевин Митник (тм) не совсем понял тебя
N

Эцилопп сией тентуры
0
хрень написанна... пост delete
Изменил: Nu3oN (14.06.2010 / 16:09)
A

Пришелец
0
function timeDiff($t1, $t2)
{
   if($t1 > $t2)
   {
      $time1 = $t2;
      $time2 = $t1;
   }
   else
   {
      $time1 = $t1;
      $time2 = $t2;
   }
   $diff = array(
      'years' => 0,
      'months' => 0,
      'weeks' => 0,
      'days' => 0,
      'hours' => 0,
      'minutes' => 0,
      'seconds' =>0
   );
   
   foreach(array('years','months','weeks','days','hours','minutes','seconds')
         as $unit)
   {
      while(TRUE)
      {
         $next = strtotime("+1 $unit", $time1);
         if($next < $time2)
         {
            $time1 = $next;
            $diff[$unit]++;
         }
         else
         {
            break;
         }
      }
   }
   return($diff);
}

Использование:

$start = strtotime('1988-05-21 00:00:00');
$end = strtotime(date("Y-m-d H:i:s"));
$diff timeDiff($start, $end);

Вроде точно показывает
Изменил: Alex (14.06.2010 / 16:46)
Автор
Пацак
0
Всем спасибо, сделано. close#
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск