<?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);*/
$date = date('j.n.Y', strtotime($date));
if(existsDate($date, false) == 1){
return $date;
}
return false;
}
/**
* @param string $date format d.m.rrrr
* @return bool
* @copyright Jakub Vrána, http://php.vrana.cz/
*/
function existsDate($date, $millenium = true){
$millenium = ($millenium) ? '4' : '1,';
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]{'.$millenium.'}$~D', $date);
}
var_dump(typicalFormat('999-02-05')); die();
- Output for 5.2.6 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.37, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- string(8) "5.2.0999"
- Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.5
- string(8) "1.1.1970"
- Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5
- string(7) "5.2.999"
preferences:
265.08 ms | 402 KiB | 349 Q