JavaScript дата объект не устанавливает часы, как ожидалось - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь получить дату от настоящего времени с разницей до 24 часов.

Соответственно, я использую api установленного времени, но он возвращает мне неожиданные результаты.

    let selectedDropdown = 23 //COMMENTED TO SIMULATE SELECT d3.select(".rangeSelect1").node().value;
          console.log("Present Date " + new Date());
    	  maxDate = new Date(new Date().setHours(new Date().getHours() + selectedDropdown));
    	  console.log("selectedDropdown " + selectedDropdown);
    	  console.log("Max Date" + maxDate);

enter image description here

На картинке выше выводится код.

Нынешняя дата отображается как 29 марта, а при добавлении к ней 23 часов указывается дата как 04 июня, которая фактически должна быть 30 марта.

Есть какие-нибудь указатели, чтобы это исправить, или я где-то делаю неправильно?

1 Ответ

3 голосов
/ 30 марта 2019

Ваш выбор d3 выглядит как строка, а не как целое число.Попробуйте разобрать его в int, а затем делать математику.

При добавлении в строку вы получите неверные результаты

    let selectedDropdown = "23" //COMMENTED TO SIMULATE SELECT d3.select(".rangeSelect1").node().value;
          console.log("Present Date " + new Date());
    	  maxDate = new Date(new Date().setHours(new Date().getHours() + selectedDropdown));
    	  console.log("selectedDropdown " + selectedDropdown);
    	  console.log("Max Date" + maxDate);


Сначала проанализируйте его как int.Обернуть выбранную переменную Dropdown в parseInt

    let selectedDropdown = "23" //COMMENTED TO SIMULATE SELECT d3.select(".rangeSelect1").node().value;
          console.log("Present Date " + new Date());
    	  maxDate = new Date(new Date().setHours(new Date().getHours() + parseInt(selectedDropdown)));
    	  console.log("selectedDropdown " + selectedDropdown);
    	  console.log("Max Date" + maxDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...