Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
05 мар 2014, 15:13
Денис
Как возможно реализовать чтобы дата объявлений отображалась следующим образом: объявления поданные сегодня-вместо числа отображалось слово "сегодня", объявления поданные вчера-вместо числа отображалось слово "вчера", а остальные объявления уже с числами?
- Screenshot_2.png (42.27 КБ) Просмотров: 14865
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
05 мар 2014, 18:10
andipas
В файл protected/helpers/common.php
добавляем код:
- Код: Выделить всё
function getSmart($timestamp, $datestr = '%d.%m.%Y %G:%i', $time = true) {
if ($timestamp == '') {
$timestamp = time();
}
$datestr = str_replace('%\\', '', preg_replace("/([a-z]+?){1}/i", "\\\\\\1", $datestr));
$timestamp = date($datestr, $timestamp);
$monthes = array(
'', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'
);
$date = strtotime($timestamp);
if ($time) {
$time = ' в G:i';
} else {
$time = '';
}
if (date('Y') == date('Y', $date)) {
if (date('z') == date('z', $date)) {
$result_date = date('Сегодня' . $time, $date);
} elseif (date('z') == date('z', mktime(0, 0, 0, date('n', $date), date('j', $date) + 1, date('Y', $date)))) {
$result_date = date('Вчера' . $time, $date);
} elseif (date('z') == date('z', mktime(0, 0, 0, date('n', $date), date('j', $date) - 1, date('Y', $date)))) {
$result_date = date('Завтра' . $time, $date);
} elseif (date('z') == date('z', mktime(0, 0, 0, date('n', $date), date('j', $date) + 2, date('Y', $date)))) {
$result_date = date('2 дня назад' . $time, $date);
} elseif (date('z') == date('z', mktime(0, 0, 0, date('n', $date), date('j', $date) + 3, date('Y', $date)))) {
$result_date = date('3 дня назад' . $time, $date);
}
if (isset($result_date)) {
return $result_date;
}
}
$month = $monthes[date('n', $date)];
$year = 'Y г.';
$result_date = date('j ' . $month . ' ' . $year . $time, $date);
return $result_date;
}
в файле /protected/modules/apartments/views/widgetApartments_list_item.php
выводим дату так:
- Код: Выделить всё
echo getSmart(strtotime($item->date_created));
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
05 мар 2014, 18:41
Денис
вООЩЕ КРАСОТИЩЕ!
Моя работа связанна с маркетингом...хочу заметить ,что слово-сегодня, оказывает гораздо большее влияние на мысли человека о свежести контента, чем 4 марта-к примеру!
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
19 июл 2014, 13:37
emma233
Куда именно выводим.. echo getSmart(strtotime($item->date_created));..место чего или чего ,не получается видны тока ироглефы там где тата и т.д
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
21 июл 2014, 06:27
Koduc
emma233 писал(а):Куда именно выводим..
Так там ниже в этом файле есть вывод и цены, и названия объявления. Вставляйте куда именно вы хотите чтобы отображалось.
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
11 сен 2014, 13:36
Azius
а на саму страницу с объявлением этот код подойдет?
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
12 сен 2014, 06:41
Koduc
Azius писал(а):а на саму страницу с объявлением этот код подойдет?
Да, подойдет. Там только при вызове функции вместо $item будет $data
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
12 сен 2014, 09:57
Azius
Koduc писал(а):Azius писал(а):а на саму страницу с объявлением этот код подойдет?
Да, подойдет. Там только при вызове функции вместо $item будет $data
не получается пишет Undefined variable: data
Re: Дата объявления-сегодня, вчера, 3 мар 02:23
Добавлено:
16 сен 2014, 07:24
Koduc
Azius писал(а):не получается пишет Undefined variable: data
Эт вы какой именно файл правите и в каком месте?