2016-07-05 20 views
0

Ich habe ein Datum in localStorage unter der Variablen deadline (Tue Jul 05 2016 18:15:00 GMT+0100 (BST)) gespeichert und ich möchte den Unterschied zwischen diesem Datum und new Date() jedoch jede Funktion, die ich versuche mit zu finden Das lokal gespeicherte Datum scheint nicht zu funktionieren.JavaScript - Datum in localStorage gespeichert wird nicht mit Funktionen zusammenarbeiten

Zum Beispiel, wenn ich versuche, durchzuführen: console.log(deadline.getTime()) ich den Fehler: deadline.getTime is not a function aber wenn ich auf den new Date() die gleiche Funktion ausführen funktioniert es trotz der Syntax der Daten in Ordnung genau das gleiche sein. Kann jemand etwas Licht abwerfen? Vielen Dank.

+1

Können Sie "Typeof Deadline" und "Deadline Instanceof Date" anzeigen? – Arnial

+0

'string' bzw.' false' – mellows

Antwort

2

All values in localStorage are always strings. Wenn Sie Date Objekt in localStorage speichern, konvertiert es automatisch string.

Also, wenn Sie Ihre Deadline zurück, es ist nicht Date, es ist String-Darstellung. Wenn Sie die Methoden Date aufrufen möchten, müssen Sie die Zeichenfolgendarstellung in Date konvertieren. Es gibt eine Bibliothek (moment.js), die Ihnen helfen kann.

Auch gibt es einen einfacheren Weg, um Ihr Datum zurück zu bekommen. Speichern Sie es nicht als Standard-String-Darstellung. Speichern Sie es als Zeitstempel. Wenn Sie das Datum erneut abrufen müssen, erstellen Sie das neue Date vom Zeitstempel in localStorage.

//save in localStorage 
localStorage.setItem('deadline', deadline_date.getTime()); 

//load from localStorage 
var deadline = new Date(localStorage.getItem('deadline'));