Вывод даты (Завтра сегодня вчера)

Привет
Как вывести дату по наступающим виде

Дата на тв

Новый год наступит 31 ДЕКАБРЬ 2015
Новый год наступит Завтра
Новый год наступит Сегодня
Новый год наступит(л) Вчера

Замутил DateAgo но все таки не смог :(


Update 1

Нашел такой код

<?php
function date_smart($date_input, $time=false) {
	$monthes = array(
		'', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
		'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'
	);
	$date = strtotime($date_input);

	//Время
	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);
		}

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

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

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

	$result_date = date('j '.$month.' '.$year.$time, $date);
	return $result_date;
}

echo date_smart('[[*pub_date]]');
но выводит прошлый век 1 января 1970 г.

Update 2

Найдено решения с помощью moment.js
TITAN-UZ
14 марта 2015, 00:05
modx.pro
3 005
0

Комментарии: 7

Spam
14 марта 2015, 18:50
0
modstore.pro/packages/utilities/dateago#tab=properties
пробуйте это дополнение, а именно смотрите параметр input — Дата для обработки

    Василий Наумкин
    14 марта 2015, 19:03
    0
    dateAgo не показывает даты в будущем.
      TITAN-UZ
      15 марта 2015, 12:05
      0
      ( Указывает на необходимость замены "Сегодня", "Вчера", "Завтра". В указанном формате «day» будет заменено на соответствующее значение.)
      Вот как сделать эти вывод (Завтра), Сегодня вчера работает.
        Василий Наумкин
        15 марта 2015, 12:10
        0
        Очепятался я, бывает.
          TITAN-UZ
          15 марта 2015, 12:23
          +1
          Не надо так шутит :D

          Итак такой вариант выводит
          [[+tv.date:dateAgo=`{«dateDay»:«day»,«dateHours»:0,«dateMinutes»:0,«dateNow»:0,«dateFormat»:" "}`]]

          Завтра в и все как указать на время
            Василий Наумкин
            15 марта 2015, 12:34
            2
            +1
            А ведь и правда, работает. Нужно только отключить вывод "… назад":
            [[!dateAgo?
            	&input=`2015-03-16 12:45:00`
            	&dateHours=`0`
            	&dateMinutes=`0`
            	&dateNow=`0`
            ]]
            Выводит
            Завтра в 12:45

            Сам себя иногда удивляю =)
              TITAN-UZ
              15 марта 2015, 13:30
              0
              ЭЭЭЭЭЭЭ респект
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7