Zigning Ответов: 1

У меня есть проблема с преобразованием строки javascript в число


Я экспериментирую с датами и узнал значения из ввода типа даты
это струны. Я хочу, чтобы преобразовать число частей строку, которая возвращается, чтобы цифры.
Я полагаю, что лучший способ описать то, что я пытаюсь сделать, - это вставить код.

вот соответствующий HTML - код

<input id="dateinput" type="date"> </input>
<input type="button" onclick="calcdiff()" value="submit"> </input>


Вот мой javascript-код. элемент ctc-это то место, где я тестирую, чтобы увидеть, получаю ли я правильный вывод.

function calcdiff() {
var datetest = document.getElementById("dateinput").value;
  var yearString = datetest.slice(0,4);
  var monthString = datetest.slice(5,7);
  var dayString = datetest.slice(8,10);
var yearNum = Number("yearString");
var monthNum = Number("monthString");
var dayNum = Number("dayString");
document.getElementById("ctc").innerHTML = yearNum;


Что я уже пробовал:

когда я использую typeof yearNum, я вижу, что он преобразуется в числовой тип. Однако,
когда я просто устанавливаю innerHTML в yearNum, как в приведенном выше коде, он возвращает "NaN".
Это даже несмотря на то, что если я настрою элемент ctc на отображение yearString, он отобразит "2018", если это тот год, который я выбираю из элемента ввода даты.

Что не так с кодом, поскольку он возвращает "NaN", а не число?

1 Ответов

Рейтинг:
4

Bryian Tan

Правильный синтаксис должен быть

var yearNum = Number(yearString);
  var monthNum = Number(monthString);
  var dayNum = Number(dayString);


и не число("yearString"); потому что он пытается преобразовать строку "yearString" в число. Очень незначительные изменения проходят в переменной yearString.

Кстати, эти входные элементы, закрывающие тег, выглядят немного странно. так и должно быть
<input id="dateinput" type="date"/>
<input type="button" onclick="calcdiff()" value="submit"/>


Zigning

Дох, конечно, большое спасибо!

Bryian Tan

Всегда пожалуйста.