OEDateValidator::validateValue PHP Method

validateValue() public method

public validateValue ( $value )
    public function validateValue($value)
    {
        $check_date = null;
        if ($m = preg_match('/^\\d\\d\\d\\d-\\d\\d{0,1}-\\d\\d{0,1}( \\d\\d:\\d\\d:\\d\\d){0,1}$/', $value)) {
            $check_date = date_parse_from_format('Y-m-d', $value);
        }
        if (!$check_date || !checkdate($check_date['month'], $check_date['day'], $check_date['year'])) {
            return false;
        }
        return true;
    }

Usage Example

 /**
  * Perform form data validation.
  *
  * @param $form_data
  *
  * @return array
  */
 public function validate($form_data)
 {
     $errs = array();
     if (!@$form_data['appointment_date']) {
         $errs['appointment_date'] = 'Please enter an appointment date';
     }
     $appointment_date = \Helper::convertNHS2MySQL($form_data['appointment_date']);
     $date_validator = new \OEDateValidator();
     if (!$date_validator->validateValue($appointment_date)) {
         if (strtotime($appointment_date) != false) {
             $errs['appointment_date'] = 'Appointment date is not in valid format';
         } else {
             $errs['appointment_date'] = 'Appointment date is not a valid date';
         }
     } else {
         $not_historical_validator = new \OEDateValidatorNotHistorical();
         if ($not_historical_validator->validateValue($appointment_date) == false) {
             $errs['appointment_date'] = 'Appointment date cannot be in the past';
         }
     }
     if ($appointment_time = @$form_data['appointment_time']) {
         $time_validator = new \OETimeValidator();
         if (!$time_validator->validateValue($appointment_time)) {
             $errs['appointment_time'] = 'Appointment time is not valid';
         }
     }
     return $errs;
 }