在到期前一周向会员发送电子邮件

时间:2014-07-14 17:13:43

标签: php sql

我在php中构建一个应用程序,在会员资格到期前一周向客户发送一封自动电子邮件(使用cron作业)。有没有办法在到期前至少一周从我的数据库中检索记录?

我做到了:

$today = strtotime(date("Y-m-d"));

$query = "SELECT first_name, last_name, email, renewal_date, membership_id FROM v_clients_members WHERE renewal_date < '$today'";

然后尝试用

来改进它
$today = strtotime(date("Y-m-d")+"1 week");

$query = "SELECT first_name, last_name, email, renewal_date, membership_id FROM v_clients_members WHERE renewal_date < '$today'";

我知道我的问题是今日$的声明,但我不知道如何获得今天的日期+一周。

PS 我知道我应该使用准备好的语句,但客户希望我使用它的遗留代码,尽管我有异议。还使用cron作业,因为我可能会设置它,以便每天早上(凌晨2点到3点)进行数据库检查并发送电子邮件。

1 个答案:

答案 0 :(得分:1)

我假设您知道date("Y-m-d")+"1 week"没有多大意义,并且您用它来向我们展示您的意思,所以我不会在那里详细介绍。

无论如何,strtotime()期望第一个参数(根据他的PHP手册)是:

  

根据GNU日期输入格式语法解析的字符串

如果您查看this document about relative date formats,则可以看到:

  

号码空间? - 处理值为数字的相对时间项。

这意味着您可以使用1 week来定义从现在开始一周的日期。

$expire = strtotime(date("Y-m-d", strtotime("1 week"));
$query = "SELECT first_name, last_name, email, renewal_date, membership_id FROM v_clients_members WHERE renewal_date < '$expire'";