Validate date dd/mm/yyyy Validate date dd/mm/yyyy codeigniter codeigniter

Validate date dd/mm/yyyy


You can validate through regular expression first you should write a function like this

function validate_date_reg($input){   if (preg_match('\d{1,2}/\d{1,2}/\d{4}', $input))   {      return true; // it matched, return true   }   else   {      return false;   }}

and call it like this:

if($this->validate_date_reg($this->input->post('some_data'))){    // true go ahead......}

i hope that this will help you.


1) How to validate a date with CI callbacks:

"The validation system supports callbacks to your own validation functions. This permits you to extend the validation class to meet your needs."

In your method:

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

Your own callback function:

public function validate_date($incoming_date){    //If in dd/mm/yyyy format    if (preg_match("^\d{2}/\d{2}/\d{4}^", $incoming_date))    {        //Extract date into array        $date_array = explode('/', $incoming_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', 'Invalid date');            return false;        }    }    //If not in dd/mm/yyyy format    else    {        $this->form_validation->set_message('validate_date', 'Invalid date');        return false;    }    return true;}

2) How to compare two dates:

$date_one = (int) strtotime(str_replace('/', '-', $this->input->post('date_one', true)));$date_two = (int) strtotime(str_replace('/', '-', $this->input->post('date_two', true)));if($date_one < $date_two){    echo 'Message';}else{    echo 'Message';}


try out this..

you need to down date.js from this url "https://code.google.com/p/datejs/downloads/list"

call datefunction() function form onChange()

<script>    function datefunction()    {        var startdate = document.getElementById('date1').value;        var enddate  = document.getElementById('date2').value;        // for current date use        // var enddate  = new Date();        var d1 = Date.parse(startdate );        var d2 = Date.parse(enddate  ) ;        if (d1 > d2)         {            alert ("Start Date cannot be gratter than End Date!");            return false;        }    }</script>