A Class for Validating and Formatting Dates
By Tony Marston2005-04-16
Display date to the User
This first part checks for input in the format yyyymmdd.
function getExternalDate ($input)
{
if (strlen($input) == 8) {
$pattern = '(^[0-9]{4})' // 4 digits (yyyy)
.'([0-9]{2})' // 2 digits (mm)
.'([0-9]{2}$)'; // 2 digits (dd)
if (ereg($pattern, $input, $regs)) {
if (!checkdate($regs[2], $regs[3], $regs[1])) {
$this->errors = 'This is not a valid date';
return FALSE;
} else {
$monthnum = (int)$regs[2];
$this->externaldate = "$regs[3] " .$this->monthalpha[$monthnum] ." $regs[1]";
return $this->externaldate;
} // if
} // if
$this->errors = "Invalid date format: expected 'yyyymmdd'";
return FALSE;
} // if
If this does not find a match this next part checks for input in the format yyyy-mm-dd.
if (strlen($input) == 10) {
$pattern = '(^[0-9]{4})' // 4 digits (yyyy)
.'([^0-9])' // not a digit
.'([0-9]{2})' // 2 digits (mm)
.'([^0-9])' // not a digit
.'([0-9]{2}$)'; // 2 digits (dd)
if (ereg($pattern, $input, $regs)) {
if (!checkdate($regs[3], $regs[5], $regs[1])) {
$this->errors = 'This is not a valid date';
return FALSE;
} else {
$monthnum = (int)$regs[3];
$this->externaldate = "$regs[5] " .$this->monthalpha[$monthnum] ." $regs[1]";
return $this->externaldate;
} // if
} // if
$this->errors = "Invalid date format: expected 'dd-mm-yyyy'";
return FALSE;
} // ifIf we have not found a match against any of these patterns then we generate an error message before returning an empty result to the user.
$this->errors = 'This is not a valid date';
return $input;
} // getExternalDate
Tutorial pages:
|
|
|||||||||
You might also want to check these out:
|
Leave a Comment on "A Class for Validating and Formatting Dates"
You must be logged in to post a comment.
Link to This Tutorial Page!

