Помогите с функцией и выводом даты
1.
Владимир (06.11.2012 / 11:18)
Привет.Ребят помогите правильно настроить и вывести дату добавления файла.
На данный момент вид вывода выглядит так
<?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 ?>
но ничего не выводит.пробывал по разному.помогите
2.
Сергей (06.11.2012 / 11:26)
удалён.
3.
Николай (06.11.2012 / 11:43)
для начало created_at в бд заменяшь на int и при добавлении файла ставишь время time();
Дальше
<?
echo'Дата размещения:<br> '.itime($track['created_at']).'';
?>
4.
Владимир (06.11.2012 / 14:44)
3.
Trance Mission, переименовал .по поводу при добавлении файла ставишь время time(); я не понял куда лепить.файлы добавляются через крон
есть запись в базу..там?
5.
Владимир (07.11.2012 / 09:17)
не стал заморачиваться.сделал по другому, но тоже что-то не так.вот функция
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 минут хотя разместил файл час назад.непойму что не так
6.
Николай (07.11.2012 / 10:16)
4.
MMdance, зачем таблицу то преименовывать? там надо было заменить ее тип на int
в самом php коде где добавляются файлы в бд заносится стандартная дата тебе надо исправить на time()
7.
Владимир (07.11.2012 / 10:20)
6.
Trance Mission, помоги с постом выше твоего пожалуйста!сделал получше но тоже косяк
8.
Николай (07.11.2012 / 10:46)
сам файл загрузки файла скинь мне
9.
Владимир (07.11.2012 / 10:51)
8.
Trance Mission, ну так причём загрузка?всё же норм загружает!просто функция помойму не корректно работает выводя как-то наоборот отсчёт назад от времени загрузки файла,а должна вперёд считать!
10.
Николай (07.11.2012 / 11:06)
тебе надо стандартный формат даты заменить на time() и что я писал в 3 посту. будет работать нормально.
Рачем придумывать велосепеды? когда можно обойтись без них
11.
Владимир (07.11.2012 / 12:49)
выслал в личку
URL:
https://visavi.net/topics/35195