0

谁能告诉我为什么截止日期一到就没有重置(即“其他”部分)?

var timeInMinutes = 1;
var currentTime = Date.parse(new Date());

var deadline = localStorage.deadline;
if(deadline) {
    deadline = new Date(deadline);
}else {
    deadline = new Date(Date.now() + timeInMinutes*60*1000);
    localStorage.deadline = deadline;
}

谢谢。

4

1 回答 1

1

else语句将仅在第一次运行,因为deadline此后将始终是“真实的”。

由于该else语句应该第一次运行,并且只要截止日期已过,请将您的if条件更改为:

var deadline = localStorage.deadline;
if(deadline && new Date() < new Date(deadline)) {
  deadline = new Date(deadline);
} else {
  deadline = new Date(Date.now() + timeInMinutes*60*1000);
  localStorage.deadline = deadline;
}

这基本上是说,“如果有截止日期我们还没有达到,请继续使用当前的截止日期。否则,设置一个新的截止日期。”

于 2016-05-07T22:01:17.910 回答