tengo un codigo que si lo adaptas a tu necesidad te puede servir....
valida incluso la fecha por ejemplo 31 de febrero es una fecha que no existe y la valida teniendo en cuenta los años viciestos...
Código PHP:
<?php
// valida fecha
$Diar=$_POST['dia'];
$Mesr=$_POST['mes'];
$Anhor=$_POST['ano'];
$fechita="";
if(($Diar != "") && ($Mesr != "") && ($Anhor != "")){
if (checkdate($Mesr, $Diar, $Anhor)) {
$fechaValida=true;
$fechita=$Diar."/".$Mesr."/".$Anhor;
} else {
$fechaValida=false;
$valido=false;
}
}
// valida fecha
?>
<style type="text/css">
<!--
.Estilo1fec {
color: #009900;
font-weight: bold;
}
.Estilo2fec {
color: #FF0000;
font-weight: bold;
}
-->
</style>
<form method="post" name="form1" action="">
<table border='1' with='90%' style="border-collapse:collapse; border-color:000000;">
<tr valign="baseline">
<td nowrap align="right"><span class="INDEX4">*</span>Fecha Nac.:</td>
<td colspan="2" align="left"><select name="dia">
<option value="">dia</option>
<?php $Dias="1" ?>
<?php while($Dias <= "31"){ ?>
<option <?php if($Dias == $_POST['dia']){ ?>selected="selected"<?php }?> value="<?php echo $Dias; ?>"><?php echo $Dias; ?></option>
<?php $Dias=$Dias+1 ?>
<?php } ?>
</select>
<select name="mes">
<option value="">mes</option>
<option value="1" <?php if ($_POST['mes'] == "1"){ ?> selected="selected"<?php } ?> >Enero</option>
<option value="2" <?php if ($_POST['mes'] == "2"){ ?> selected="selected"<?php } ?> >Febrero</option>
<option value="3" <?php if ($_POST['mes'] == "3"){ ?> selected="selected"<?php } ?> >Marzo</option>
<option value="4" <?php if ($_POST['mes'] == "4"){ ?> selected="selected"<?php } ?> >Abril</option>
<option value="5" <?php if ($_POST['mes'] == "5"){ ?> selected="selected"<?php } ?> >Mayo</option>
<option value="6" <?php if ($_POST['mes'] == "6"){ ?> selected="selected"<?php } ?> >Junio</option>
<option value="7" <?php if ($_POST['mes'] == "7"){ ?> selected="selected"<?php } ?> >Julio</option>
<option value="8" <?php if ($_POST['mes'] == "8"){ ?> selected="selected"<?php } ?> >Agosto</option>
<option value="9" <?php if ($_POST['mes'] == "9"){ ?> selected="selected"<?php } ?> >Septiembre</option>
<option value="10" <?php if ($_POST['mes'] == "10"){ ?> selected="selected"<?php } ?> >Octubre</option>
<option value="11" <?php if ($_POST['mes'] == "11"){ ?> selected="selected"<?php } ?> >Noviembre</option>
<option value="12" <?php if ($_POST['mes'] == "12"){ ?> selected="selected"<?php } ?> >Diciembre</option>
</select>
<select name="ano">
<option value="">año</option>
<?php
$hoyano=date("Y");
$hoydateyear=$hoyano-18;
$dateyear=$hoydateyear-70;
?>
<?php while($dateyear <= $hoydateyear){ ?>
<option <?php if ($dateyear == $_POST['ano']) {?>selected="selected" <?php }?> value="<?php echo $dateyear; ?>"><?php echo $dateyear; ?></option>
<?php $dateyear=$dateyear+1 ?>
<?php } ?>
</select><?PHP
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
if($fechaValida){
echo "<span class='Estilo1fec'>La fecha es correcta</span>";
}else{
echo "<span class='Estilo2fec'>La fecha es incorrecta</span>";
}
}
?></td>
</tr>
<?php if (isset($_POST['MM_insert']) && ($_POST['ano']=="" or $_POST['ano']==" " or $_POST['mes']=="" or $_POST['mes']==" " or $_POST['dia']=="" or $_POST['dia']==" ")) { ?> <tr valign="baseline">
<td align="center" nowrap="nowrap" class="menutop1 HEADER4"> </td>
<td align="left" nowrap="nowrap" class="menutop1 HEADER4">*Debe completar este campo </td>
<td align="center" nowrap="nowrap" class="menutop1 HEADER4"> </td>
</tr><?php } ?>
</table><input type="hidden" name="MM_insert" value="form1"><input type="submit" value="Buscar" />
</form>
<br /><br />
<?php if($fechita != ""){ ?>
Fecha Seleccionada: <?php echo $fechita; ?>
<?php } ?>