Framework  3.9
DateValidator Class Reference

Date Validator. More...

+ Inheritance diagram for DateValidator:
+ Collaboration diagram for DateValidator:

Public Member Functions

 DateValidator ($field, $title)
 
 writeClient ()
 
 validate ()
 
- Public Member Functions inherited from AbstractValidator
 AbstractValidator ($field, $title)
 

Additional Inherited Members

- Public Attributes inherited from AbstractValidator
 $field
 
 $title
 

Detailed Description

Date Validator.

Does not throw error if date field is empty - that is done by RequiredValidator.

Error if the date does not match the format mm/dd/yyyy or if either the month, day, or year evaluates to an integer value of 0 (e.g., user enters 00/00/0000).

Definition at line 337 of file validation.inc.

Member Function Documentation

◆ DateValidator()

DateValidator::DateValidator (   $field,
  $title 
)

Definition at line 339 of file validation.inc.

340  {
341  $this->AbstractValidator($field, $title);
342  }
AbstractValidator($field, $title)
Definition: validation.inc:53

◆ validate()

DateValidator::validate ( )

Reimplemented from AbstractValidator.

Definition at line 365 of file validation.inc.

366  {
367  global $_POST;
368 
369  if ($this->readOnly) return "";
370 
371  list($dd,$mm,$yyyy) = explode('/', $_POST[$this->field]);
372 
373  if ($_POST[$this->field] != "" AND !preg_match("|^\\d{1,2}\/\\d{1,2}\/\\d{4}$|", $_POST[$this->field]) ||
374  (preg_match("|^\\d{1,2}\/\\d{1,2}\/\\d{4}$|", $_POST[$this->field]) &&
375  (intval($dd) == 0 || intval($mm) == 0 || intval($yyyy) == 0)))
376  {
377  $result = "{$this->title} must be in the format MM/DD/YYYY";
378  }
379 
380  return $result;
381  }

◆ writeClient()

DateValidator::writeClient ( )

Reimplemented from AbstractValidator.

Definition at line 344 of file validation.inc.

345  {
346  if ($this->readOnly) return "";
347 
348  $script .= <<<ENDSCRIPT
349  var d = form["{$this->field}"].value.split(/\D+/);
350 
351  if (form["{$this->field}"].value != "" &&
352  (!form["{$this->field}"].value.match(/^\d{1,2}\/\d{1,2}\/\d{4}$/) ||
353  (form["{$this->field}"].value.match(/^\d{1,2}\/\d{1,2}\/\d{4}$/) &&
354  (parseInt(d[0], 10) == 0 || parseInt(d[1], 10) == 0 || parseInt(d[2], 10) == 0))))
355  {
356  alert("{$this->title} must be in the format MM/DD/YYYY");
357  return false;
358  }
359 
360 ENDSCRIPT;
361 
362  return $script;
363  }

The documentation for this class was generated from the following file: