DocLister фильтрация по дате

Всем привет.
Вот такая ситуация:
[!DocLister?
&parents=`56`
&tpl=`eventsList`
&tvList=`data_i_vremya_nachala`
&orderBy=`data_i_vremya_nachala ASC`
&depth=`5`
&language=`ru`
&sortDir=`ASC`
&dateSource=`tv.data_i_vremya_nachala`
&dateFormat=`%d %b %Y`
&summary=`notags,len:200`
&dotSummary=`1`
&filters=`AND(data_i_vremya_nachala:>=:[[ddGetDate? &format=`d.m.Y`]])`
!]

Сниппет ddGetDate выводит актуальную дату.

Я хочу показывать мероприятия, у которых ТВ data_i_vremya_nachala равняется или больше, чем Сегодня.

Что я делаю не так. Различные форматы даты я тоже пробовал.

Прошу совета, пожалуйста.

5 комментариев

avatar
Посмотрите, как хранятся даты в TV, и все станет понятно сразу.
avatar
У меня:

[!DocLister?
&id=`list`
&idType=`parents`
&parents=`18191`
&showParent=`0`
&tvSortType=`TVDATETIME`
&tvList=`Date`
&orderBy=`Date ASC`
&e=`pagetitle`
&addWhereList=`UNIX_TIMESTAMP(STR_TO_DATE(dltv_Date_1.value,'%d-%m-%Y %H:%i:%s')) > [!weekdate &weekday=1!]`
&debug=`0`
&prepare=`prepare.anounce`
&ownerTPL=`@CODE:
<table class="table table-bordered table-striped">
	<thead>
		<tr class="warning">
			<th>Дата</th>
			<th>Мероприятие</th>
			<th>Место проведения</th>
			<th>Участвует</th>
		</tr>
	</thead>
	<tbody>
		[+dl.wrap+]
	</tbody>
</table>
`
&tpl=`@CODE:
<tr>
	<td>[+tv.Date+]</td>
	<td><a href="[~[+id+]~]" title="[+e.pagetitle+]">[+e.pagetitle+]</a></td>
	<td>[+longtitle+]</td>
	<td>[+description+]</td>
</tr>
`
!]

[[weekdate]] — возвращает дату для дня текущей недели
вместо него можно и текущую дату подставить NOW()
avatar
data_i_vremya_nachala:>=:[[ddGetDate? &format=`d.m.Y`]])

Вместо ddGetDate нужно брать unixtime now
avatar
Два чая этому господину!

Спасибо большое за такое простое решение! =)))
Только посмотрите что там выше нагородили :)) Шутка.

Ребята, всем спасибо, всем плюсы.

Решение было такое:
1. Дата из сниппета вывоводилась в формате 04-07-2017 19:37:00
2. Сделал сниппет unixtime со строчкой echo date('d-m-Y H:i:s');
3. Вызываю сниппет не кэшируемым &filters=`AND(data_i_vremya_nachala:>=:[!unixtime!])`
Комментарий отредактирован 2017-07-05 18:59:45 пользователем antonfix
avatar
Если бы хранили дату в TV в формате unixtime то сниппет был бы короче
return date(u)
Но AddWhereList в примере выше — правильнее. Хотя я сам и так делаю
Комментарий отредактирован 2017-07-05 19:04:56 пользователем alexbeep
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.