2015-02-25 5 views
3

Я использую PHP CodeIgniter. Я сохранил проверку в функции. Я не знаю правила проверки даты и времени в CodeIgniter. Может ли кто-нибудь дать мне идею?Правила проверки даты и времени в CodeIgniter

Мой код:

$this->ref_valid_rules = array( 
         array('field' => 'meeting_heading', 
           'label' => 'meeting heading', 
           'rules' => 'trim|required'), 
         array('field' => 'meeting_agenda', 
           'label' => 'meeting agenda', 
           'rules' => 'trim|required'), 
         array('field' => 'venue', 
           'label' => 'venue', 
           'rules' => 'trim|required'), 
         array('field' => 'date', 
           'label' => 'date time', 
           'rules' => 'required')); 
+0

Что такое '$ this-> ref_valid_rules'? – AdrienXL

+0

Я сохранил это для правил валидации –

ответ

1

Вы можете попробовать

$this->form_validation->set_rules('date', 'date time', 'regex_match[(0[1-9]|1[0-9]|2[0-9]|3(0|1))-(0[1-9]|1[0-2])-\d{4}]'); 

http://www.formget.com/codeigniter-form-validation-date/

и другие ответы Codeigniter - Date format - Form Validation

Date validation in codeigniter

или вы можете попробовать правила набора проверки с использованием обратных вызовов

function regex_date($date) { 

    $data = preg_match('@^Jan|Feb|Mar|Apr|May|June|July|Aug|Sept|Oct|Nov|Dec-[0-9]{2}-[0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}[email protected]', $date); 

    return $data; 
} 

функция возвращает истину или ложь

+0

bro, «Feb-26-2015 13:40:57» - это формат в моем дате. Поэтому я didnot get .. –

+0

function date_valid ($ date) { \t $ day = (int) substr ($ date, 0, 2); \t $ month = (int) substr ($ date, 3, 2); \t $ year = (int) substr ($ date, 6, 4); \t return checkdate ($ month, $ day, $ year); } –

+0

@Deepak Keynes; ваша функция date_valid уже нормально? –

0

Вы можете создать свою собственную callback функцию для проверки даты.

Нижеприведенный пример предназначен для проверки формата dd/mm/yyyy, поэтому вы можете изменить его, как оно соответствует вашим требованиям. Это даст вам подсказку о обратных вызовах.

Обратите внимание: callback_validate_date в set_rules(). Это ваша функция обратного вызова. Он вызывает validate_date() за сценой.

$this->form_validation->set_rules('date_field', 'Date', 'trim|exact_length[10]|callback_validate_date|xss_clean'); 

Ответный

public function validate_date($date) 
{ 
    //Some date fields are not compulsory 
    //If all of them are compulsory then just remove this check 
    if ($date == '') 
    { 
     return true; 
    } 

    //If in dd/mm/yyyy format 
    if (preg_match("^\d{2}/\d{2}/\d{4}^", $date)) 
    { 
     //Extract date parts 
     $date_array = explode('/', $date); 

     //If it is not a date 
     if (! checkdate($date_array[1], $date_array[0], $date_array[2])) 
     { 
      $this->form_validation->set_message('validate_date', 'The %s field must contain a valid date.'); 
      return false; 
     } 
    } 
    //If not in dd/mm/yyyy format 
    else 
    { 
     $this->form_validation->set_message('validate_date', 'The %s field must contain a valid date.'); 
     return false; 
    } 

    return true; 
} 
Смежные вопросы