Нужна помощь с выводом даты.
1.
Дмитрий (13.06.2010 / 01:39)
Здрасть, такой вопрося: имеется переменная $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;
Но, при таком раскладе не совсем точно выводит. Нуна помощь в составлении более точного кода, а также может кто подскажет как обработать года.. )
2.
Кевин Митник (13.06.2010 / 11:19)
Нужно от date(); вычесть дату регистрации и преобразовать в дату.
3.
Azzido (13.06.2010 / 11:39)
с годами сложнее, там все портит этот гр*** високосный год, неточность может получиться, а про месяцы ваще молчу там ваще в разнобой количество, не могли разработчики календаря сделать его равномерным с одинаковым количеством дней месяце, и в эталон времени добавить еще пару секунд чтоб не было всяких високосных приколов
4.
Дмитрий (13.06.2010 / 17:27)
Azzido ну эт да, хтя в день, два неточность не оч страшно... Кевин Митник (тм) не совсем понял тебя
5.
Nu3oN (14.06.2010 / 16:07)
хрень написанна... пост delete
6.
Alex (14.06.2010 / 16:44)
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);
Вроде точно показывает
7.
Дмитрий (14.06.2010 / 19:16)
Всем спасибо, сделано. close#
URL:
https://visavi.net/topics/10444