javascript - 比较显示意外结果的日期对象

标签 javascript

我这里有一些代码:

  • 让您以“hh:mm”格式输入起床时间
  • 输出 sleep 时间列表,为您提供 90 分钟 sleep 周期的倍数(此列表将建议晚上 8 点之后的任何时间的 sleep 时间)

    var inputTime = prompt("input wake up time");
    var colonPosition = inputTime.indexOf(":")
    var inputHrs = parseInt(inputTime.substring(0, colonPosition));
    var inputMin = parseInt(inputTime.substr(colonPosition + 1, 2));
    
    var timeNow = new Date();
    timeNow.setHours(inputHrs);
    timeNow.setMinutes(inputMin);
    timeNow.setDate(timeNow.getDate() + 1)
    
    var sleepTime = new Date();
    sleepTime.setHours(20);
    
    while(timeNow > sleepTime) { 
      timeNow.setMinutes(timeNow.getMinutes() - 90);
      document.write(timeNow + "<br />")
    }
    

如果我输入唤醒时间 9:00,则输出包括 19:30。

为什么我的 while 条件没有过滤掉输出中的 19:30?

最佳答案

Why isn't my while conditional filtering out 19:30 in the output?

您将 while 循环用作 for 循环,但您的 afterthought在您的实际代码之前运行。检查后,您将条件条件的值更改为错误的值。

您应该将减去 90 分钟的内容移至 while block 的末尾。

while(timeNow > sleepTime) { 
  document.write(timeNow + "<br />");
  timeNow.setMinutes(timeNow.getMinutes() - 90);
}

关于javascript - 比较显示意外结果的日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38596416/

相关文章:

javascript - 在多个元素上使用 TweenMax

javascript - 如何在单击一个链接按钮时调用 javascript 和代码隐藏函数?

javascript - 想要删除一个类并在兄弟标签中添加 SlideUp

javascript - 更改日期输入格式 PHP/Bootstrap/Javascript/HTML5

javascript - 为什么我的简单邮件 php 表单需要很长时间才能加载?

javascript - 在任意形状的矢量容器内渲染 <canvas> 文本

javascript - EcmaScript5 特性

javascript - 使用 jQuery 转换一个 div 来显示另一个

javascript - 在登录到 React App 时添加基于角色的重定向

javascript - 在 Javascript 中更改对象结构和属性