С var minDate = iso.substring(0,iso.length-1);
вы получите что-то вроде 2019-03-28T12:30:21.000
. Строка даты ISO выглядит как 2019-03-28T12:30:21.000Z
, поэтому все, что вы делаете, это снимаете Z
.
Измените его на .substring(0, 10)
.
$(document).ready(function() {
var elem = $('#date');
var iso = new Date().toISOString();
var minDate = iso.substring(0, 10);
elem.value = minDate;
elem.min = minDate;
});
Обратите внимание, что это позволит вам выбрать даты в будущем, , включая сегодня . На завтра и далее поменяйте var iso = new Date().toISOString();
на var iso = new Date(new Date().valueOf() + 86400000);
.
86400000
- это 1000ms (1 second) * 60 * 60 * 24
.
1 секунда * 60 = 1 минута
1 минута * 60 = 1 час
1 час * 24 = 1 день
Для datetime-local ....
$(document).ready(function() {
var ONE_DAY = 86400000;
var elem = document.getElementById('date');
var minDate = new Date();
minDate.setHours(0);
minDate.setMinutes(0);
var iso = new Date(minDate.valueOf() + ONE_DAY).toISOString();
var minDateString = iso.substring(0, iso.length - 8);
elem.value = minDateString;
elem.min = minDateString;
});
Обратите внимание, что все еще можно вводить недопустимые значения, так как дополнительная проверка зависит от реализации поля браузером. См. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#Validation для получения дополнительной информации.