Как сравнить ввод даты с жестко закодированной датой в инструкции if?

#javascript

#javascript

Вопрос:

Я создаю веб-форму, и пользователь вводит дату, и я хочу сравнить ее с датой, чтобы показать доступность, напечатанную в другом месте, и «показать дату» — это пользовательский ввод, а «2019-05-21» — это данные, с которыми я хочу сравнить.

 if (document.getElementById("showDate").value === 2019-05-21 amp;amp; document.getElementById("selection").value === "Les Miserables")
{
    document.getElementById("displayAva").innerHTML = "65 tickets left";
}
  

Комментарии:

1. Во-первых, пожалуйста, добавьте весь соответствующий код к вашему вопросу. Это также означает HTML. Далее, вы указали, что вы хотите, но на самом деле не задали конкретный вопрос. Что делает опубликованный вами код? Получаете ли вы какие-либо сообщения об ошибках? Какой у вас конкретный вопрос?

2. Можете ли вы показать нам образец пользовательского ввода в #showDate

3. Далее, поймите, что это 2019-05-21 возвращает 1993 , потому что для JavaScript это просто математическое выражение. Чтобы сравнить дату, у вас должен быть другой тип даты для сравнения. Или, может быть, у вас есть строки, которые выглядят как даты. В этом случае вам нужно сравнить строку с другой строкой.

4. Как будет выглядеть тип даты, если я хочу напрямую сравнить их вместо создания переменной date?

5. Это значение, которое сохраняется, поэтому, если вы хотите сравнить дату, у вас должна быть одна, что вы можете сделать следующим образом: new Date(2019-05-21)

Ответ №1:

2019-05-21 это не дата.

Просто запустите этот код:

 console.log(2019-05-21)  

На выходе 1993 вы выполняете математические операции. Вместо этого вы должны использовать string или Date .

Я не знаю, каково значение document.getElementById("showDate").value , но если это строка, вы могли бы просто сделать:

 document.getElementById("showDate").value == "2019-05-21"
  

Таким образом, вы бы сравнивали две строки. Если showDate.value точно "2019-05-21" , это вернет true.

Используя Date , вы могли бы сделать:

 Date.parse(document.getElementById("showDate").value) == Date.parse("2019-05-21")
  

Или если другое значение уже Date :

 document.getElementById("showDate").value.getTime() == Date.parse("2019-05-21")
  

Или:

 document.getElementById("showDate").value.toUTCString() == new Date("2019-05-21").toTimeString()
  

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