Here's the reason not to use type="date" (or at least to do it carefully): localized date formats.
If you use <input type="date"> and the browser supports the date type, you must specify the value attribute in the ISO-8601 date format (for example, yyyy-MM-dd). If the browser does not support the date type, you will need to specify the date in the local user date format (for example, MM / dd / yyyy in the USA).
On the server side, you can probably be sloppy and do something like this:
try parse date as ISO-8601 catch (Format Error) try parse date as local format catch (Format Error) show user error message
If you want to be as clear as possible, you will need to perform some client-side discovery functions, then enable type="date" , and then change the date format of the value attribute, and possibly even produce a hidden form element that notifies the server that that the date format coming from the form should be ISO-8601.
source share