Помогите с функцией и выводом даты

Печать RSS
192

Автор
Землянин
0
Привет.Ребят помогите правильно настроить и вывести дату добавления файла.
На данный момент вид вывода выглядит так
<?php if ( $track['created_at'] ): ?> Дата размещения:<br><?php echo $track['created_at']->format("d.m.Y H:i"); ?> <?php endif ?>
Выглядит так
Дата размещения: 05.11.2012 15:20
я добавил функцию
function itime($time) { 
    switch (date('j n Y', $time)) { 
        case date('j n Y'): 
            return '<font color="red">Сегодня в ' . date('H:i', $time) .' </font>'; 
            break; 
        case date('j n Y', $_SERVER['REQUEST_TIME'] - 86400): 
            return '<font color="green">Вчера в ' . date('H:i', $time).'</font>'; 
            break; 
        default: 
            return strtr(date('j M Y в H:i', $time), array('Jan' => 'Янв', 
                'Feb' => 'Фев', 
                'Mar' => 'Марта', 
                'Apr' => 'Апр', 
                'May' => 'Мая', 
                'Jun' => 'Июня', 
                'Jul' => 'Июля', 
                'Aug' => 'Авг', 
                'Sep' => 'Сент', 
                'Oct' => 'Окт', 
                'Nov' => 'Ноября', 
                'Dec' => 'Дек')); 
            break; 
    } 
}
пытаюсь сделать вывод так
<?php if ( $track['created_at'] ): ?> Дата размещения:<br><?php echo itime($track['created_at']); ?> <?php endif ?>
но ничего не выводит.пробывал по разному.помогите
С

Землянин
0
удалён.
Изменил: Сергей (06.11.2012 / 11:28)

Оранжевые штаны
0
для начало created_at в бд заменяшь на int и при добавлении файла ставишь время time();

Дальше
<?
echo'Дата размещения:<br> '.itime($track['created_at']).'';
?>

Автор
Землянин
0
3. Trance Mission, переименовал .по поводу при добавлении файла ставишь время time(); я не понял куда лепить.файлы добавляются через крон
есть запись в базу..там?
Изменил: Владимир (06.11.2012 / 14:50)
Автор
Землянин
0
не стал заморачиваться.сделал по другому, но тоже что-то не так.вот функция
function itime2($date) {
    return date("d.m.Y H:i:s", $date);
}

function itime( $date ) {
  if ( !$date ) {
    return null;
  }
//return $date;
//$date = new \DateTime($date); 
  
  $periods = array(
    array("секунда", "секунды", "секунд"), 
    array("минута", "минуты", "минут"), 
    array("час", "часа", "часов"), 
    array("день", "дня", "дней"),
    array("неделя", "недели", "неделей"), 
    array("месяц", "месяца", "месяцев"), 
    array("год", "года", "лет"), 
    array("декада", "декады", "декад")
  );
  $lengths = array("60", "60", "24", "7", "4.35", "12", "10");

  $now = time();
    $unix_date = $date->getTimestamp();
//  $unix_date = strtotime($date);

  if ( $now > $unix_date ) {    
    $difference = $now - $unix_date;
    $tense = 0;
  } else {
    $difference = $unix_date - $now;
    $tense = 1;
  }

  for ( $j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++ ) {
    $difference /= $lengths[$j];
  }

  $difference = round($difference);
  $period = rutext($difference, $periods[$j][0], $periods[$j][1], $periods[$j][2]);

  if ( !$tense ) {
    return "{$difference} {$period} назад";
  } else {
    return "через {$difference} {$period}";
  }
}

function rutext($int, $one, $two, $many) {
  $int = abs($int);
  $t1 = $int % 10;
  $t2 = $int % 100;

  return ($t1 == 1 && $t2 != 11 ? $one : ($t1 >= 2 && $t1 <= 4 && ($t2 < 10 || $t2 >= 20) ? $two : $many));
}
вывожу так
<?php if ( $track['created_at'] ): ?> Дата размещения:<br><?php echo itime($track['created_at']); ?> <?php endif ?>
Выводится: Дата размещения:
через 38 минут хотя разместил файл час назад.непойму что не так

Оранжевые штаны
0
4. MMdance, зачем таблицу то преименовывать? там надо было заменить ее тип на int

в самом php коде где добавляются файлы в бд заносится стандартная дата тебе надо исправить на time()
Автор
Землянин
0
6. Trance Mission, помоги с постом выше твоего пожалуйста!сделал получше но тоже косяк

Оранжевые штаны
0
сам файл загрузки файла скинь мне
Автор
Землянин
0
8. Trance Mission, ну так причём загрузка?всё же норм загружает!просто функция помойму не корректно работает выводя как-то наоборот отсчёт назад от времени загрузки файла,а должна вперёд считать!

Оранжевые штаны
0
тебе надо стандартный формат даты заменить на time() и что я писал в 3 посту. будет работать нормально.

Рачем придумывать велосепеды? когда можно обойтись без них
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск