Каким образом можно выбрать публикации только за последние три недели?

Сделал, как было предложено — создал сниппет getDateWeekAgo

<?php
$formatDate = date('Y-m-d H:i:s');
$date = new DateTime($formatDate);
$date->modify("-21 day");
return $date->format('Y-m-d H:i:s');

в котором формируется соответствующая дата и разместил код.

[[!pdoPage?
&element=`getTickets`
&tpl=`TicketArticleOnlyRow`
&includeContent=`1`
&parents=`[[*parent]]`
&limit=`3`
&resources=`-[[*id]]`
&sortby=`RAND()`
&includeTVs=`tvimageticket`
&where=`{«publishedon:>»:"[[getDateWeekAgo]]"}`
]]

Подозреваю, что-то делаю не так.
Игорь
11 июня 2019, 15:31
modx.pro
568
0

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

Сергей Шлоков
13 июня 2019, 08:26
0
Эх, молодежь. Вам бы всё гвозди закручивать, да шурупы забивать.
&where=`{«publishedon:>»:«UNIX_TIMESTAMP() — 1814400»}`
    Игорь
    13 июня 2019, 09:56
    0
    Всё равно выбираются ВСЕ статьи… код ниже:

    [[!pdoPage?
    	&element=`getTickets`
    	&tpl=`TicketArticleOnlyRow`
    	&includeContent=`1`
        &parents=`[[*parent]]`
    	&limit=`3`
    	&resources=`-[[*id]]`
    &sortby=`RAND()`
    	&includeTVs=`tvimageticket`
    &where=`{"publishedon:>":"UNIX_TIMESTAMP() - 1814400"}`
    ]]
      Сергей Шлоков
      13 июня 2019, 17:52
      0
      Включаем showLog и смотрим запрос. Возможно придется делать так
      &where=`["publishedon > UNIX_TIMESTAMP() - 1814400"]`
        Игорь
        13 июня 2019, 18:04
        0
        После нового варианты публикации вообще не выводятся…
        Может быть проблема с полем publishedon?

        [[*publishedon]] — выводит на странице 2019-06-10 11:45:00 (т.е. НЕ КОЛИЧЕСТВО секунд!)
        Чёт я уперся вроде бы в простейшую проблему, обычный отбор по дате.
          Сергей Шлоков
          13 июня 2019, 23:05
          0
          На странице выводиться преобразованное значение, указанное в схеме. А запрос отрабатывает в базе. Там в секундах. Поэтому смотрим лог — какой запрос получился.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5