Страница 1 из 2

Дата объявления-сегодня, вчера, 3 мар 02:23

СообщениеДобавлено: 05 мар 2014, 15:13
Денис
Как возможно реализовать чтобы дата объявлений отображалась следующим образом: объявления поданные сегодня-вместо числа отображалось слово "сегодня", объявления поданные вчера-вместо числа отображалось слово "вчера", а остальные объявления уже с числами?
Screenshot_2.png
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(000date('n'$date), date('j'$date) + 1date('Y'$date)))) {
                
$result_date date('Вчера' $time$date);
            } elseif (
date('z') == date('z'mktime(000date('n'$date), date('j'$date) - 1date('Y'$date)))) {
                
$result_date date('Завтра' $time$date);
            } elseif (
date('z') == date('z'mktime(000date('n'$date), date('j'$date) + 2date('Y'$date)))) {
                
$result_date date('2 дня назад' $time$date);
            } elseif (
date('z') == date('z'mktime(000date('n'$date), date('j'$date) + 3date('Y'$date)))) {
                
$result_date date('3 дня назад' $time$date);
            }

            if (isset(
$result_date)) {
                return 
$result_date;
            }
        }

        
//Месяца
        
$month $monthes[date('n'$date)];

        
//Года
        
$year 'Y г.';
//        if (date('Y') != date('Y', $date)) {
//            $year = 'Y г.';
//        } else {
//            $year = '';
//        }

        
$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:29
Денис
блиииин СПАСИБО!

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

Эт вы какой именно файл правите и в каком месте?