正在比较显示意外结果的日期对象

Comparing Date Objects Showing Unexpected Results

本文关键字:日期 对象 结果 意外 比较 显示      更新时间:2023-09-26

我这里有一些代码:

  • 让我们以"hh:mm"的格式输入起床时间
  • 输出一个睡眠时间列表,为您提供90分钟的睡眠时间倍数(该列表将建议晚上8点后的任何时间的睡眠时间)

    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?

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

您使用while循环就像使用for循环一样,但您的事后想法只是在实际代码之前运行。检查后,您正在将条件的值更改为虚假值。

您应该将减去90分钟移动到while块的末尾。

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