Puedes usar el tipo
date
implementado en el estándar HTML5 y que
solo tiene soporte en Chrome y Opera para navegadores de escritorio, o el widget
datepicker
de jQuery UI que, si bien no presenta la desventaja del anterior (excepto porque
no puede ser usado en versiones inferiores a IE8), tiene como única desventaja el hecho de que haya que
deshabilitar la escritura en el campo de texto para que el usuario no pueda escribir lo que quiera en él, como un dato cuyo formato no corresponda a una fecha, además de que si se desactiva JavaScript del navegador, tampoco funcionará, aunque ese es un escenario que muy pocas veces sucede, pero que siempre hay que tener en cuenta.
Saludos