2012-03-30 14 views
2

FÜR DIE MODERATORS !! ICH ERSTELLTE DIESE FRAGE AUF Stackapps NACH EINER FORSCHUNG IN DIE STACK-SEKTIONEN. MUSS ICH DIESE LÖSCHEN?HTML5 Anwendung für Smartphone (Android, iOS) mit localStorage Datum()

Hallo Ich erstelle eine einfache HTML5-Anwendung, die ein Timeout() verwendet. Die Grundfunktion der APP ist: Sie wählen ein Item und ein Timeout() startet. Es funktioniert einwandfrei, aber wenn ich die Anwendung schließe, wird der Timer natürlich gestoppt. Ich versuche, es in localStorage zu speichern, aber es funktioniert nicht für das, was ich brauche.

hier ist mein Code

aktuelle Datum

var current = new Date(); 

Scheck erhalten, wenn local leer ist oder nicht. Wenn nicht, berechnet es die Differenz in Millisekunden zwischen dem gespeicherten Datum und dem aktuellen Datum.

Hier die Funktion speichern für das Datum gespeichert werden und es überprüfen Sie den Unterschied beetwen die beiden Daten.

function save() { 
    localStorage.time = new Date(); 
    click_time = localStorage.time; 
    var diff = click_time - current; 
    alert (diff); 
    } 

klar die localstorage

function clear() { 
    localStorage.clear(); 
    } 

$(document).ready(function() { 
$('input#save').click(function(){ 
    save(); 
}); 
$('input#clear').click(function(){ 
    clear(); 
}); 
}); 


<input type="submit" value="click me!" id="save"/> 
<input type="submit" value="clear" id="clear"/> 

Aber ich bekomme nur NaN !! Das Problem ist, wie kann ich das Datum in der localstorage tun müssen, und speichern, wie kann ich es als ein Datum?

Vielen Dank im Voraus.

Antwort

1

Ersetzen Sie alle new Date(); mit new Date().getTime();

Die Unterschiede zwischen new Date(). GetTime() 'wird s in Millisekunden sein.

Und zu erarbeiten:

new Date() verwendet eine Zeichenfolge wie diese zurückgeben "Fr 30. März 2012 12.02.33 GMT-0400 (EDT)." Wenn Sie also versuchen, eine Subtraktion zwischen zwei dieser Strings durchzuführen, erhalten Sie NaN.

new Date(). GetTime() gibt eine ganze Zahl wie diese 1333123359919 zurück. Dies ist in Millisekunden vom 1. Januar 1970 (oder so ähnlich). Der Unterschied zwischen zwei von diesen gibt Ihnen die Anzahl der Millisekunden zwischen den zwei Anrufen, was Sie wünschen.

+0

Vielen Dank !! Es klappt. Ich kann Ihnen wegen meines schlechten Rufes keine Stimme geben. –

+0

Kein Problem. Froh, dass ich helfen konnte! Wenn Sie diese langen Ganzzahlen wieder in eine Zeichenfolge umwandeln müssen, können Sie ein anderes Date-Objekt wie das neue Datum (1333123359919) erstellen, wobei 1333123359919 der von getTime() gespeicherte Wert ist. – soundslikeneon

+1

Aber die seltsame Sache ist, dass wenn das Datum nicht in der localStorage ist, es richtig funktioniert. Deshalb war ich etwas verwirrt und konzentrierte mich auf die LocalStorage-Funktion anstelle des Datums. –

Verwandte Themen