Отключить сегодняшнюю дату в Datetime - PullRequest
0 голосов
/ 28 марта 2019

$(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> в качестве средства выбора даты на моей веб-странице. Как отключить сегодняшнюю дату в элементе управления, чтобы пользователь мог выбирать только будущие даты?

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

С 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 для получения дополнительной информации.

0 голосов
/ 28 марта 2019

Пожалуйста, отметьте этот код, чтобы добавить один день в текущий день.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...