Php mysql和30天

Php mysql和30天,php,mysql,datetime,cron,Php,Mysql,Datetime,Cron,我在一个处理免费订阅的网站上工作,我现在想知道如何在30天不活动后取消他们的订阅,我知道这必须通过cron作业来完成,但我不知道在用户上次登录后如何计算30 您需要使用mysql DATE\u ADD函数 SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date 选择日期\u添加(“您的日期”,间隔30天) 有关更多信息,请参阅mysql手册 您可以在1个UPDATE

我在一个处理免费订阅的网站上工作,我现在想知道如何在30天不活动后取消他们的订阅,我知道这必须通过cron作业来完成,但我不知道在用户上次登录后如何计算30

您需要使用mysql DATE\u ADD函数

SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date
选择日期\u添加(“您的日期”,间隔30天)

有关更多信息,请参阅mysql手册

您可以在1个UPDATE语句中完成此操作

UPDATE yourTable SET active = 0 WHERE validity_date < CURRENT_DATE

你可以做一个查询,让你得到。事实上,MySQL文档正好包含了您的示例。在此页面上快速搜索“30天”:。

如果不想使用cron和MySQL 5.1或更高版本,可以使用event。

您如何知道用户上次登录的时间?我的意思是,假设你必须手动操作,你会怎么做?@Raj我花了一两秒钟才意识到你问题背后的意图。我差一点回答了P
UPDATE yourTable SET active = 1, validity_date = DATE_ADD(CURRENT_DATE, INTERVAL 1 MONTH) WHERE id = 'somekind of id'