JavaScript 日期对象未按预期设置小时

标签 javascript datetime

我正在尝试获取与当前时间相差最多 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

上图是代码的输出。

当前日期显示为 3 月 29 日,加上 23 小时后,日期显示为 6 月 4 日,实际上应该是 3 月 30 日。

有任何解决这个问题的建议还是我在某个地方做错了?

最佳答案

您的 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。将 selectedDropdown 变量包装在 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);

关于JavaScript 日期对象未按预期设置小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55425509/

相关文章:

c# - 从字符串 c# 中解析 DateTime

python - 使用 DateOffset 对 pandas DataFrame 进行索引和应用 func

c# - 如果日期时间是另一个日期时间的 24 小时,则返回

javascript - React - 无法使用 JavaScript 更改 DOM 的样式

javascript - Scrapy tbody 标签返回一个空答案但里面有文本

javascript - ESLint 解析和验证 JSDoc

javascript - 从对象元素创建单选按钮列表

javascript - 使用 jinja2 从 python 列表创建 javascript 列表

python - 如何在数据框中求和时间

Javascript 切换时间类型