#javascript #html #datepicker
#javascript #HTML #выбор даты
Вопрос:
$(document).ready(function(){
elem = document.getElementById("date")
var iso = new Date().toISOString();
var minDate = iso.substring(0,iso.length-1);
elem.value = minDate
elem.min = minDate
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="datetime-local" id="date" />
</form>
Я использую HTML5 datetime-local <input>
в качестве средства выбора даты на своей веб-странице. Как я могу отключить сегодняшнюю дату в элементе управления, чтобы пользователь мог выбирать только будущие даты?
Комментарии:
1. Можете ли вы поместить код, для которого у вас есть try so. Какое свойство календаря вы используете?
2. $(документ). готово(функция(){ элемент = document.getElementById(«дата»), переменная iso = новая дата().toISOString(); переменная minDate = iso.substring(0,iso.length-1); элемент.значение = minDate elem.min = minDate });
Ответ №1:
Пожалуйста, проверьте этот код, чтобы добавить один день в текущий день.
<script>
$(document).ready(function(){
elem = document.getElementById("date")
var d=new Date();
d.setDate(d.getDate() 1);
var iso = d.toISOString();
var minDate = iso.substring(0,iso.length-1);
elem.value = minDate
elem.min = minDate });
</script>
Комментарии:
1. Ничего не отключается, и это просто позволяет щелкнуть прошлую дату
2. Можете ли вы отредактировать его вопрос и добавить используемую вами html-часть.
Ответ №2:
С помощью 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 для получения дополнительной информации.
Комментарии:
1. Этот код не работает в соответствии с требованиями, пожалуйста, проверьте и обновите.