Выборка (where) по дате в pdoResources

Добрый день!
Понадобилось вывести только те записи, в которых ТЕКУЩАЯ дата попадает в период с (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') .....___код___`
]]
Заранее буду благодарен за работающий пример сложной выборки по текущей дате.
Игорь
17 января 2020, 12:08
modx.pro
1
1 435
0

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

Антон Тарасов
17 января 2020, 12:19
0
Гляньте вот тут
    Игорь
    17 января 2020, 12:50
    0
    Переписал в fenom
    Код не работает как без выборки 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()"]'
    ]}
      Станислав
      17 января 2020, 13:28
      0
      прочитайте эту статью https://webstool.ru/modx-minishop2-primeryi-vyiborki-where-optionfilters-innerjoin.html
      а это должно быть примерно так:
      'where'=> ['nacpr:<=' => $NOW, 'konpr:>=' => $NOW]

      ну и $now присваиваешь текущую дату
        Игорь
        17 января 2020, 13:40
        0
        Спасибо!
        НО!

        Там есть всё (в т.ч. и сложные запросы)… кроме как примеров работы с датами.
        А ведь дата может быть как в документе (publishedon) так и TV — насколько я понял, хранятся в другом формате (но это не суть важно).

        Есть хоть один рабочий пример строки where (не нужен весь код!) выборки по датам (tv) и сравнения с текущей датой?
          Игорь
          17 января 2020, 13:45
          0
          'where'=> ['nacpr:<=' => $NOW, 'konpr:>=' => $NOW]
          ну и $now присваиваешь текущую дату


          НУ ВОТ КАК мне это понять — «ну и $now присваиваешь текущую дату»?
            Это сообщение было удалено
              Игорь
              17 января 2020, 14:28
              +1
              ДА ЗАЧЕМ ЭТО????

              Размещу здесь рабочий вариант
              &where=`["konpr >= now() AND nacpr<=now()"]`
              Предвижу некоторые проблемы с часовым поясом (скорее всего), но это не особо критично.
              Если бы кто намекнул, что now() возвращает текущую дату…
      Игорь
      17 января 2020, 16:03
      0
      Чтобы два раза не ходить — как реализовать что-то типа смещения по датам?
      &where=`["konpr >= now()+2 AND nacpr<=now()-1"]`
      — не работает
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8