К содержанию

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

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

Дата на тв

Новый год наступит 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
TITAN-UZ
14 марта 2015, 00:05
modx.pro
3 564
Реклама

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

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

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

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

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

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