2016-05-07 15 views
0

Kann mir jemand sagen, warum die Frist nicht zurückgesetzt wird, sobald es erreicht ist (d. H. Der 'else' Abschnitt)?JavaScript - Frist nicht zurückgesetzt

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; 
} 

Danke.

+0

Sie sollten 'localStorage.getItem()' 'localStorage.setItem()' verwenden, um auf localStorage-Eigenschaften zuzugreifen. – Robusto

+0

@Robusto, mit 'getItem()' und 'setItem()' wird empfohlen, ist aber nicht notwendig. –

+0

das hat nicht funktioniert – mellows

Antwort

1

Die else Anweisung wird nur beim ersten Mal ausgeführt, weil deadline danach immer "truthy" sein wird.

Da die else Anweisung sollte das erste Mal laufen und immer dann, wenn die Frist abgelaufen ist, ändern Sie Ihre if Zustand dazu:

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; 
} 

, die im Grunde sagt: „Wenn es eine Frist ist und haben wir nicht Drücken Sie die Taste, verwenden Sie den aktuellen Abgabetermin. Andernfalls geben Sie eine neue Frist ein. "

Verwandte Themen