У меня нет среды, которую я могу протестировать, однако спецификация HTML5 говорит, что ваш ввод должен выглядеть так:
<input type="date" name="someDate" id="someDate">
Значение должно быть возвращено в виде строки в формате:
yyyy-mm-dd
Я ожидаю, что вы сможете преобразовать это в объект даты, используя:
var date = new Date(document.getElementById('someDate').value);
в браузерах, которые поддерживают тип ввода даты. Но, вероятно, другие браузеры также будут использовать страницу (и для этого потребуется экранная подсказка относительно соответствующего формата), поэтому вы можете захотеть проанализировать дату вручную, например:
var dateBits = document.getElementById('someDate').value.split('-');
var date = new Date();
date.setYear(dateBits[0], dateBits[1] - 1, dateBits[2]);
// Validate the date
if (date.getFullYear() == dateBits[0] && date.getDate() == dateBits[2]) {
// got a valid date
} else {
// didn't get a valid date
}
// And if the time needs to be zeroed
date.setHours(0, 0, 0);