<input type="date">
Je součástí nedokončené specifikace HTML 5, tudíž by se na ně spoléhat nemělo - tzn. na straně serveru (v PHP) validovat tvar toho data. A pokud chceš ten "vyskakovací kalendář" lze nahradit přes JavaScript.
Každopádně tyto věci už poslední verze prohlížečů podporují celkem použitelně.
Na lehkou validaci data ve formátu rok-měsíc-den stačí pár řádků ...
$date = "2009-12-31";
$dateParts = explode("-", $date, 3);
if( checkdate($dateParts[1], $dateParts[2], $dateParts[0]) )
{
echo "Je to správné datum!";
}else{
echo "Není to správné datum!";
}
Je i více možností, ale tohle je asi nejlehčí možnost.