Вывод текущей даты с изменением
Здравствуйте, подскажите как можно реализовать вывод текущей даты, но с вычитанием значения дня недели например от 1 до 30 и чтобы выбор этого числа происходил рандомно, т.к. для разных ресурсов нужна разная дата?
Комментарии: 10
Написать сниппет, где будет реализована необходимая логика вывода.
Очень полезный совет)), сильно помог
0) на входе имеем дату в формате:
1) рандом:
2) отнимаем дату:
Все это собираете в сниппет
Вот это вот выше заменяется использованием класса DateTime
$date = 2020-11-05
1) рандом:
$randNumber = rand(1, 30);
2) отнимаем дату:
$newDate =date('Y-m-d',(strtotime ( '-'.$randNumber.' week' , strtotime ( $date) ) ));
Все это собираете в сниппет
Вот это вот выше заменяется использованием класса DateTime
$date = new DateTime($date);
$date->modify('+1 week');
Извиняюсь за нубский вопрос, а эти строчки в сниппет не входят?
$date = new DateTime($date);
$date->modify('+1 week');
ну тут либо либо, я привел 2 варианта кода, там уже на выбор
не совсем то, что нужно, потому что так дата меняется каждый раз при обновлении на одной и той же странице, а мне нужно чтоб она была разной на разных ресурсах, но не менялась при обновлении страницы, просто была актуальной например не более чем на месяц назад, но все равно спасибо за помощь!
тогда лучшим вариантом будет при сохранении в плагине прописать новую дату и не нагружать вывод
не понял в каком плагине?
в модх есть система плагинов. Они срабатывают на определённые события
Вот пример плагина:
Вот пример плагина:
<?php
if ($modx->event->name=="OnDocFormSave") // Плагин срабатывает при сохранении ресурса
{
// тут код для получения всей даты
$resource->set('createdon', $newDate);
}
Да, про плагины и события я в курсе, просто получается через месяц нужно будет заходить в ресурс и нажимать на кнопку сохранить, чтоб актуализировать дату, тогда можно и без плагина выводить стандартным плейсхолдером дату редактирования ресурса типо такого: [[*editedon:date=`%d %b %Y`]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.