Выборка (where) по дате в pdoResources
Добрый день!
Понадобилось вывести только те записи, в которых ТЕКУЩАЯ дата попадает в период с (tv поле nacpr) по (tv поле konpr)
Перерыл весь интернет — не могу найти работающий пример выборки по периоду!
Я ПОНИМАЮ, что в where нужно задать сложное условие (AND) вида
текущая_дата>=nacpr AND текущая_дата<=kon_pr
К сожалению, навыков работы с датами в MODx пока не имею, но я быстро учусь…
Понадобилось вывести только те записи, в которых ТЕКУЩАЯ дата попадает в период с (tv поле nacpr) по (tv поле konpr)
Перерыл весь интернет — не могу найти работающий пример выборки по периоду!
Я ПОНИМАЮ, что в where нужно задать сложное условие (AND) вида
текущая_дата>=nacpr AND текущая_дата<=kon_pr
К сожалению, навыков работы с датами в MODx пока не имею, но я быстро учусь…
[[pdoResources?
&parents=`2`
&depth=`0`
&tpl=`TestListRowTpl`
&includeTVs=`tvimage,nacpr,konpr`
&where=`["FROM_UNIXTIME(nacpr, '%Y-%m-%d') .....___код___`
]]
Заранее буду благодарен за работающий пример сложной выборки по текущей дате. Комментарии: 8
Гляньте вот тут
Переписал в fenom
Код не работает как без выборки where, так и с выборкой (нет сниппета NOW)
Код не работает как без выборки where, так и с выборкой (нет сниппета NOW)
{'!pdoResources' | snippet : [
'select' => '{"modResource":"id,pagetitle"}',
'tpl' => 'TestListRowTpl',
'level' => '1',
'limit' => '0',
'tvPrefix' => '',
'includeTVs' => 'tvimage,nacpr,konpr',
]}
С выборкой where{'!pdoResources' | snippet : [
'select' => '{"modResource":"id,pagetitle"}',
'tpl' => 'TestListRowTpl',
'level' => '1',
'limit' => '0',
'tvPrefix' => '',
'includeTVs' => 'tvimage,nacpr,konpr',
'where'=> '["nacpr <= NOW() AND konpr >= NOW()"]'
]}
прочитайте эту статью https://webstool.ru/modx-minishop2-primeryi-vyiborki-where-optionfilters-innerjoin.html
а это должно быть примерно так:
'where'=> ['nacpr:<=' => $NOW, 'konpr:>=' => $NOW]
ну и $now присваиваешь текущую дату
а это должно быть примерно так:
'where'=> ['nacpr:<=' => $NOW, 'konpr:>=' => $NOW]
ну и $now присваиваешь текущую дату
Спасибо!
НО!
Там есть всё (в т.ч. и сложные запросы)… кроме как примеров работы с датами.
А ведь дата может быть как в документе (publishedon) так и TV — насколько я понял, хранятся в другом формате (но это не суть важно).
Есть хоть один рабочий пример строки where (не нужен весь код!) выборки по датам (tv) и сравнения с текущей датой?
НО!
Там есть всё (в т.ч. и сложные запросы)… кроме как примеров работы с датами.
А ведь дата может быть как в документе (publishedon) так и TV — насколько я понял, хранятся в другом формате (но это не суть важно).
Есть хоть один рабочий пример строки where (не нужен весь код!) выборки по датам (tv) и сравнения с текущей датой?
'where'=> ['nacpr:<=' => $NOW, 'konpr:>=' => $NOW]
ну и $now присваиваешь текущую дату
НУ ВОТ КАК мне это понять — «ну и $now присваиваешь текущую дату»?
ну и $now присваиваешь текущую дату
НУ ВОТ КАК мне это понять — «ну и $now присваиваешь текущую дату»?
Это сообщение было удалено
ДА ЗАЧЕМ ЭТО????
Размещу здесь рабочий вариант
Если бы кто намекнул, что now() возвращает текущую дату…
Размещу здесь рабочий вариант
&where=`["konpr >= now() AND nacpr<=now()"]`
Предвижу некоторые проблемы с часовым поясом (скорее всего), но это не особо критично.Если бы кто намекнул, что now() возвращает текущую дату…
Чтобы два раза не ходить — как реализовать что-то типа смещения по датам?
&where=`["konpr >= now()+2 AND nacpr<=now()-1"]`
— не работает
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.