2015-10-15 62 views
2

我是PHP MySQL的初学者,我有系统在注册/添加客户信息后,它将在30天后更改状态。更改过期日期后的值PHP MYSQL

方案
在我的新增客户页面,我有一个日期开始,到期日期和状态的形式。

日期开始 - 自动设置日期今天
到期 - 自动设定的日期开始起30天
Expiration2 - 自动设置的过期日期+90天
状态 - 现状客户(如果新注册的状态值将为FRESH如果之后30天状态将更改为INACTIVE如果经过90天它将更改为DORMANT

这是我为dateStartdateExpireddateExpired2,但我不知道如何代码的status过程的代码。

$dateStart= Date('Y-m-d'); 
$dateExpired = date('Y-m-d', strtotime($dateStart. ' + 30 days')); 
$dateExpired2 = date('Y-m-d', strtotime($dateExpired2. ' + 90days')); 

echo '<input type="text" name= "dateStart" value="'. $dateStart.'"/>'; 
echo '<input type="text" name= "dateExpired" value="'. $dateExpired .'"/>'; 
+1

您可以设置一个每晚检查日期差异的cron。如果差异是30天,请更改状态。 –

+0

@NiranjanNRaju如何? – Edmhar

+0

@NiranjanNRaju对不起,我是初学者,不知道该怎么做。 – Edmhar

回答

2

如果在预定的时间间隔运行这样一个脚本,它可以自动更新用户的状态:

$dateStart= date('Y-m-d'); 
$dateExpired = date('Y-m-d', strtotime($dateStart. ' + 30 days')); 
$dateExpired2 = date('Y-m-d', strtotime($dateStart. ' + 90days')); 

$status = "FRESH"; 

if(strtotime($dateStart)<strtotime('-30 days')){ 
    $status = "INACTIVE"; 
} 

if(strtotime($dateStart)<strtotime('-90 days')){ 
    $status = "DORMANT"; 
} 

//Run sql update query to set status 

为SQL更新查询

+0

谢谢,但我怎么知道是否处于休眠和非活动状态? – Edmhar

+0

将$ dateStart更改为'2015-04-01'之类的日期并回显$状态 – tkav

+0

仍然FRESH先生 – Edmhar

3

触发一个cron作业,见here

  • 你应该在PHP文件写代码,做你需要什么(变化状态,如果日期已超过30天或90天)
  • 你应该确保的是,你的文件没有任何与它相关的会话。

我加入了以下图片,请他们

enter image description here

我加入这每天运行一次一个cron。在你的服务器上,它看起来像这样。

enter image description here

+0

您应该按照@tkav建议的方式编写代码,并为该页面自动运行每天早上12点。 –

+0

我在哪里可以找到这个CRON? – Edmhar

+0

在服务器的cPanel中。 –