C'est une question qui revient régulièrement sous des formes diverses, voici la dernière .
Pour ce genre de problème, on a toujours tendance à renvoyer vers jQuery et jQuery UI DatePicker parce que cette solution est utilisable sur las navigateurs obsolètes.
Mais les navigateurs d'aujourd'hui (Chrome, Firefox et Edge) disposent d'un calendrier avec <input type="date"> et il est très facile de s'en servir.
Voici un exemple de formulaire
...