Xwab
Форумыnavigate_nextПрограммирование на PHP

Помогите с выводом даты и функцией
Сообщения
Plain

Привет.Ребят помогите правильно настроить и вывести дату добавления файла.
На данный момент вид вывода выглядит так

<?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 ?>
но ничего не выводит.пробывал по разному.помогите

06 Ноя 2012, 9:17
aBSuRD

echo $track['created_at']->format("d.m.Y H:i");
в функцию получается ты передаешь объект DateTime

06 Ноя 2012, 11:47
Plain

не стал заморачиваться.сделал по другому, но тоже что-то не так.вот функция

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 минут хотя разместил файл час назад.непойму что не так

07 Ноя 2012, 7:26
Анархист

Plain,код на мой взгляд,не очень.
добавлено спустя 5 минут:
Plain,поговорим о целесообразности.Достаточно огранититься..сегодня,вчера и просто дата.

12 Ноя 2012, 19:48
Fuelen

#3, ужас.
#1, echo itime($track['created_at']->getTimestamp());

12 Ноя 2012, 23:37
jasis

Анархист, неет, он хочет как вконтакте))это же великий сайт) нада косить всем под него

13 Ноя 2012, 9:09
Анархист

jasis,мода.

21 Ноя 2012, 7:31
higimo

Ужасный код… очень плохо понятный.

21 Ноя 2012, 11:03
SPAHI4

http://xwab.mobi/forum/web/viewtopic.php?p=986733#986733

22 Ноя 2012, 12:26
higimo

<?php
    if ( $track['created_at'] )
    {
        echo "Дата размещения: ";  //МОжно переписать на printf();
        echo $track['created_at']->format("d.m.Y H:i");
    }
?>
<?php

function itime($time) {
    $result = "";
    switch (date('j n Y', $time)) {
        case date('j n Y'):
            $result '<span class="today">Сегодня в ' . date('H:i', $time) .' </span>';
            break;
        case date('j n Y', $_SERVER['REQUEST_TIME'] - 24*60*60):
            $result '<span class="yesterday">Вчера в ' . date('H:i', $time).'</span>';
            break;
        default:
            $result strtr(
                date('j M Y в H:i', $time),
                Array(
                    'Jan' => 'Янв',
                    'Feb' => 'Февраля',
                    'Mar' => 'Марта',
                    'Apr' => 'Апреля',
                    'May' => 'Мая',
                    'Jun' => 'Июня',
                    'Jul' => 'Июля',
                    'Aug' => 'Августа',
                    'Sep' => 'Сентября',
                    'Oct' => 'Октября',
                    'Nov' => 'Ноября',
                    'Dec' => 'Декабря'
                )
            );
            break;
    }
    return $result;
}
?>

<?php
    if ( $track['created_at'] )
    {
        echo "Дата размещения:"
        echo itime($track['created_at']);
    }
?>

23 Ноя 2012, 13:11
Ответить на тему