A chi può servire :
Codice PHP:
$day = (int)'29';
$month = (int)'02';
$year= (int)'2000';
//true
$day = (int)'29';
$month = (int)'02';
$year= (int)'2001';
//false
$day = (int)'28';
$month = (int)'02';
$year= (int)'2007';
//true
$day = (int)'31';
$month = (int)'11';
$year= (int)'2007';
//false
$isValidDayMonth= true;
$arrayLookup = array('1'=>'31',
'3'=>'31',
'4'=>'30',
'5'=>'31',
'6'=>'30',
'7'=>'31',
'8'=>'31',
'9'=>'30',
'10'=>'31',
'11'=>'30',
'12'=>'31');
if($day !== 0 && $month !== 0 && $year !== 0 ){
if(isset($arrayLookup[$month]) && $day <= 31){
//check if month value and day value agree
if($day >= $arrayLookup[$month]){
//bad day for the month
$isValidDayMonth= false;
}
}
//check february day
if ($month === 2){
if($day > 29){
//bad day for the month
$isValidDayMonth= false;
}
elseif($day === 29){
if (($year % 4 == 0) && ($year % 100 != 0) || ($year % 400 == 0)) {
// year div by 4 and ((not div by 100) or div by 400) ->ok
$isValidDayMonth= true;
}
else{
$isValidDayMonth= false;
}
}
}
}
var_dump($isValidDayMonth);
Ogni suggerimento è il benvenuto 