- var_dump: documentation ( source)
- preg_match: documentation ( source)
- implode: documentation ( source)
- explode: documentation ( source)
- preg_replace: documentation ( source)
<?php
/**
* @param string $date format rrrr-mm-dd
* @return mixed - false or date format d.m.rrrr which really exists
*/
function typicalFormat($date){
$date = explode('-', $date);
if(count($date) == 3){
$year = $date[0];
$date[1] = preg_replace('~^0~', '', $date[1]);
$date[0] = preg_replace('~^0~', '', $date[2]);
$date[2] = $year;
$date = implode('.', $date);
if(existsDate($date) == 1){
return $date;
}
return false;
}
return false;
}
/**
* @param string $date format d.m.rrrr
* @return bool
* @copyright Jakub Vrána, http://php.vrana.cz/
*/
function existsDate($date){
return preg_match('~^([1-9]|19|[12][0-8]|29(?=\\.([^2]|2\\.(([02468][048]|[13579][26])00|[0-9]{2}(0[48]|[2468][048]|[13579][26]))))|30(?=\\.[^2])|31(?=\\.([13578][02]?\\.)))\\.([1-9]|1[012])\\.[0-9]{4}$~D', $date);
}
var_dump(typicalFormat('1000-02-05')); die();