Как вы сравниваете сегодняшнюю дату с датой, предоставленной Django с использованием JavaScript / JQuery? - PullRequest
3 голосов
/ 18 марта 2020

Вся проблема состоит в том, чтобы сравнить дату, извлеченную из базы данных и переданную в поле ввода в шаблоне, с сегодняшней датой, сгенерированной jquery.

К сожалению, когда я попытался распечатать консоль startDt, выведите меня "undefined значение "

$(document).ready(function() {
  let endDt = new Date();

  $(".date").each(function() {
    let startDt= $(this).attr('data-book').val;
    if ((new Date(startDt).getTime() < new Date(endDt).getTime())) {
      // Rest of code here
    }
  });
});
<input type="date" class="date" hidden data-book="{{ book.slug }}" value="{{ book.date|date:" Y-m-d " }}">

1 Ответ

0 голосов
/ 18 марта 2020

Ваш лог c почти там. Проблема заключается в способе извлечения атрибутов из элемента.

Чтобы заполнить переменную startDt, необходимо вызвать метод val() (включая скобки). attr('data-book') не требуется (и вместо этого должно быть data('book')).

Попробуйте это:

jQuery($ => {
  let endDt = new Date();

  $(".date").each(function() {
    let startDt = $(this).val();
    if ((new Date(startDt).getTime() < new Date(endDt).getTime())) {
      console.log('start is BEFORE end');
    } else {
      console.log('start is AFTER end');
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="date" class="date" hidden data-book="{{ book.slug }}" value="2020-03-18">
<input type="date" class="date" hidden data-book="{{ book.slug }}" value="2018-03-18">
<input type="date" class="date" hidden data-book="{{ book.slug }}" value="2050-03-18">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...