Обновление записи базы данных через 30 (месяц) дней - PullRequest
2 голосов
/ 18 января 2020

У меня есть список представлений, и у каждого есть свой date_added, я также запускаю cron каждый день и проверяю, является ли date_added> = 30 дней.

Я ищу правильную проверку даты каждый день (cron ) поэтому если date_added> 30 дней, что-то должно произойти.

Формат даты: 2019-12-14 08: 38: 09

Мой код:

$afterMonth = date("Y-m-d H:i:s", strtotime("+1 months"));

Сравнение запросов:

$query->where($db->quoteName('last_updated') . ' >= ' . $db->quote($afterMonth));

Я только что тестировал <=, и он работает хорошо, но не знаю, как тестировать> = или работает ли он.

предложите мне лучший код, пожалуйста, я не силен в php.

1 Ответ

1 голос
/ 18 января 2020

Введите логин даты c в SQL, эта строка вам не понадобится:

$afterMonth = date("Y-m-d H:i:s", strtotime("+1 months"));

Измените ваше предложение where:

$query->where($db->quoteName('last_updated') . ' >= DATE_SUB(CURDATE(), INTERVAL 30 DAY');

Мы ' снова используйте функцию DATE_SUB() SQL, чтобы вычесть временной интервал из заданной даты. Мы используем CURDATE(), чтобы получить текущую дату, а затем INTERVAL 30 DAY, чтобы установить время вычитания.

Вы также можете просто использовать:

$query->where($db->quoteName('last_updated') . ' >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)');

Подробнее об этой функции здесь

...