在我的系统中,我有一个关于会员资料的部分。我希望能够为每个成员显示成员资格到期状态(例如,当前,到期和过期)。我已经有了每个人的到期日。我只需要一种方法让系统检查到期日期是什么,并显示成员资格状态,我不知道该怎么做。
如果有人可以发布有关如何执行此操作的详细说明,那将会很棒。
会员模特:
<?php
App::uses('AppModel', 'Model');
class Member extends AppModel {
public $displayField = 'id';
public $belongsTo = array(
'Contact' => array(
'className' => 'Contact',
'foreignKey' => 'contact_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}
会员表有:
ID
MEMBER_TYPE
year_joined
date_renewed
card_issue_date
renewal_due
contact_id
会员资格每年一次。和任何俱乐部会员一样的功能。我需要索引页面和视图页面通过检查“renewal_due”来显示每个成员的状态,“renewal_due”是成员资格的到期日期。成员资格的状态应显示“当前”表示仍然有效/未过期的成员资格,“由于到期”表示会员资格在一个月内到期,而“已过期”表示已过期。
如果您需要任何进一步的信息,请随时询问。我不确定这需要什么样的信息。
答案 0 :(得分:0)
如果您将续订日期作为unix时间戳保存在数据库中,则可以使用time()
你的控制器:
<?php
public function index($memberid) {
$this->set('member', $this->Member->find('first', array('conditions' => array('Member.id' => $memberid)));
}
?>
并在您看来:
<?php
if($member['Member']['renewal_date'] <= time()) {
$status = 'Expired';
} elseif (($member['Member']['renewal_date'] - (30 * 24 * 60 * 60)) <= time()) {
$status = 'Due To Expire';
} else {
$status = 'Current';
}
?>
Your membership is: <?php echo $status; ?>
您需要更改数据库,以便renewal_date字段为整数,然后将renewal_date保存为unix时间戳格式,如下所示:
<?php
//sets a date one year from now
$one_year_ahead = time() + (365 * 24 * 60 * 60);
//alternative method
$one_year_ahead = strtotime('+1 year');
?>