0

私のシステムには、メンバーシップの詳細のセクションがあります。各メンバーのメンバーシップの有効期限のステータス (例: 現在、期限切れ予定、期限切れ) を表示できるようにしたいと考えています。私はすでにそれらのそれぞれの有効期限を持っています. システムが有効期限を確認して会員ステータスを表示する方法が必要なだけですが、その方法がわかりません。

誰かがこれを行う方法について詳細な説明を投稿できれば素晴らしいでしょう。

メンバーモデル:

<?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' => ''
        )
    );
}

メンバー テーブルには
次 の もの
が あり ます 。




会員資格は年単位です。また、他のクラブ メンバーシップと同じように機能します。メンバーシップの有効期限である「renewal_due」をチェックして、各メンバーシップのステータスを表示するには、インデックス ページとビュー ページが必要です。メンバーシップのステータスは、有効期限が切れていないメンバーシップの場合は「Current」、1 か月以内に期限切れになるメンバーシップの場合は「Due to Expire」、期限切れのメンバーシップの場合は「Expired」と表示されます。

さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。これが機能するためにどのような情報が必要かわかりません。

4

1 に答える 1

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');
?>
于 2012-08-01T13:07:39.500 に答える