Удалить сообщение через определенный промежуток времени

Я создал функцию, которая получает время публикации статьи. Эта же функция проверяет, является ли статья недельной давностью, и отключает ее.

Я не знаю, что здесь делать, если мне нужно сделать функцию отзывчивой при вызове. Я подумал об использовании JavaScript и установке времени ожидания для функции. это было бы слишком много петель.

Это "если", которое я использовал для проверки даты. Кто-нибудь с лучшей идеей, пожалуйста, помогите.

if((time() - $publish_time) > (7*24*60*60)){
  //  if the current timestamp - the time the article was published > 1 week.
  //Execute the query to deactivate the article
} 

Этот фрагмент находится внутри функции, которую я должен вызвать.

2 ответа

Решение

Представьте, что [таблица] имеет [столбец] с датой вставленной записи:

SET GLOBAL event_scheduler = ON;

CREATE
    EVENT 'archive_posts'
    ON SCHEDULE EVERY 1 WEEK
    DO 
        DELETE FROM [table] WHERE [column] < DATE_SUB(NOW(), INTERVAL 1 WEEK);

Вместо того, чтобы иметь это на своем сайте, вы должны закончить свои статьи с помощью cronjob, согласно этому вопросу при использовании MySQL (*nix-like)
В Windows вы можете использовать mmc.exe и добавить задачу для выполнения скрипта через планировщик задач)

Другие вопросы по тегам