Codeigniter как добавить год к дате регистрации пользователя - PullRequest
0 голосов
/ 20 декабря 2010

У меня есть форма регистрации пользователя, и мне нужно вставить функцию для создания даты истечения срока действия клиентов.Либо 1 год, либо 2 в зависимости от выпадающего списка.

Как добавить значение года к дате регистрации при создании пользователя?

Вот мой контроллер для нового пользователя

    function new_member()
{
    $data = array(
        'Last_Name' => $this->input->post('Last_Name'),
        'First_Name' => $this->input->post('First_Name'),
        'Salutation' => $this->input->post('Salutation'),
        'Address' => $this->input->post('Address'),
        'City' => $this->input->post('City'),
        'Province' => $this->input->post('Province'),
        'Postal' => $this->input->post('Postal'),
        'Email' => $this->input->post('Email'),
        'Dial_Up' => $this->input->post('Dial_Up'),
        'Phone_1' => $this->input->post('Phone_1'),
        'Phone_2' => $this->input->post('Phone_2'),
        'Language' => $this->input->post('Language'),
        'Membership_Cat' => $this->input->post('Membership_Cat'),
        'Special_Member_Cat' => $this->input->post('Special_Member_Cat'),
        'Membership_Status' => $this->input->post('Membership_Status'),
        'Date_DNR' => $this->input->post('Date_DNR'),
        'Gift_Membership' => $this->input->post('Gift_Membership'),
        'Gift_Giver' => $this->input->post('Gift_Giver'),
        'Membership_Length' => $this->input->post('Membership_Length'),
        'Dues_Paid' => $this->input->post('Dues_Paid'),
        'Donation' => $this->input->post('Donation'),
        'Payment_Method' => $this->input->post('Payment_Method'),
        'Date_Received' => $this->input->post('Date_Received'),
        'Date_Input' => $this->input->post('Date_Input'),
        'Membership_Date' => $this->input->post('Membership_Date'),
        'Renew_Letter_1' => $this->input->post('Renew_Letter_1'),
        'Renew_Letter_2' => $this->input->post('Renew_Letter_2'),
        'Renew_Letter_3' => $this->input->post('Renew_Letter_3'),
        'Date_Letter_Sent' => $this->input->post('Date_Letter_Sent'),
        'Vol_FA' => $this->input->post('Vol_FA'),
        'Vol_TEL' => $this->input->post('Vol_TEL'),
        'Vol_CD' => $this->input->post('Vol_CD'),
        'Vol_SCBA' => $this->input->post('Vol_SCBA'),
        'Vol_MAIL' => $this->input->post('Vol_MAIL'),
        'Vol_SML' => $this->input->post('Vol_SML'),
        'Vol_BODCOM' => $this->input->post('Vol_BODCOM'),
        'Vol_OTHER' => $this->input->post('Vol_OTHER'),
        'Member_Since' => $this->input->post('Member_Since'),
        'Notes' => $this->input->post('Notes'),
        );

    $this->membership_model->add_record($data);
    $this->load->view('index_view');
}

Это моя модель

    function add_record($data)
{
    $this->db->insert('Membership', $data);
    return;
}

любая помощь приветствуется!

спасибо

Ответы [ 3 ]

1 голос
/ 20 декабря 2010

Я принял оба ваши предложения и посмотрел на функцию strtotime.Поскольку у меня есть два срока членства, 1 и 2 года, мне нужно было также придумать переменную в функции.Только что закончил тестирование, вот оно

$Membership_Length = $this->input->post('Membership_Length');
        if($Membership_Length == "1")
        {
            $length = "+1 year";
        }
        else
        {
            $length = "+2 years";
        }

    $Expiry_Date1 = $this->input->post('Membership_Date');
    $Expiry_Date = strtotime($length , strtotime($Expiry_Date1));
    $Expiry_Date = date('Y-m-j', $Expiry_Date);
    $date_expiry_array = array('Expiry_Date' => $Expiry_Date);
    $data = array_merge($data, $date_expiry_array);
0 голосов
/ 20 декабря 2010

С тем, как вы настроили свой массив данных, вы можете использовать опцию, подобную этой:

$date_received = $this->input->post('Date_Received');
$date_expiry =   strtotime(date("Y-m-d", strtotime($date_received)). " +1 year";
$date_expiry_array = array('Date_Received'=>$date_expiry);
$data = array_merge($data, $date_expiry_array);

или, если вы использовали этот подход:

$date_received = $this->input->post('date_received');
$data['date_received'] = strtotime(date("Y-m-d", strtotime($date_received)). " +1 year

";

Если вы хотите проверить срок действия в 1 или 2 года, вы можете добавить оператор if для проверки значения date_received, а затем добавить количество лет на основе этого значения.

0 голосов
/ 20 декабря 2010

Посмотрите на функцию PHP strtotime (), например,

$expiry = date('yy-mm-dd', strtotime('+1 year'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...