如何编写查询以在用户包在Yii中3天后过期时发送通知?
例如,帐户已在25th Dec
上过期,然后在26th, 27th and 28th Dec
上发送过期的电子邮件。
$expireddate = date('Y-m-d', strtotime('-3 days')); // (Coming from db)
$model = TblPackageUserplan::model()->findAll('expire_date>=:expire_date', array(':expire_date' => $expireddate));
它无法正常工作,因为它也会在20th Dec
之前发送邮件。
我想在3天后发送确切用户包已过期的邮件。如何让用户详细信息包在3天后过期?
答案 0 :(得分:1)
您只能使用标准。
截至您的问题
于12月25日到期,然后在12月26日,27日和28日发送过期电子邮件
您需要比较expire_date + 3days。
$criteria = new CDbCriteria;
// With this condition we get only packages on next three days after expire_date.
$criteria->addCondition('DATEDIFF(CURRENT_DATE(),t.expire_date) BETWEEN 1 AND 3');