Próbuję obliczyć różnicę między dwoma razy przy użyciu JavaScript. To tylko podstawowa matematyka, ale wydaje mi się, że mam z tym kilka problemów podczas korzystania z JSON.stringify()
i JSON.parse()
.Problemy z datą() podczas korzystania z JSON.stringify() i JSON.parse()
Jeśli zastanawiasz się, dlaczego ja stosując funkcję JSON.stringify()
do tej pory, to dlatego, że za pomocą lokalnej pamięci do przechowywania niektórych danych po stronie klienta i używać go, gdy ziemie klienta na mojej stronie ponownie (to szybciej w ten sposób zamiast składać więcej żądań na serwer). Te dane zwykle aktualizują się od czasu do czasu (przechwytuję dane za pośrednictwem interfejsu API z innej witryny), więc ustawiłem zmienną data_update
i przechowuję ją razem z innymi danymi.
W ten sposób pobieram przechowywane dane z lokalnego magazynu i sprawdzam, czy różnica między data_update
(która jest datą/czasem), a czasem/datą, kiedy to sprawdzenie jest sprawdzane i czy jest większa niż tydzień/dzień/itd.
Jest to powód, dla którego używam funkcji JSON. Mój problem polega na tym, że kiedy parsuję dane z lokalnego magazynu, data wydaje się być inna niż obiekt Date()
.
Próbuję zrobić następną operację za powiedzieć:
var x = JSON.parse(JSON.stringify(new Date()));
var y = JSON.parse(this.get_local_storage_data(this.data_cache_key)); // the data object stored on local storage
var q = y.data_update; // this is the variable where the Date() was stored
console.log(Math.floor((x-q)/1000));
Powyższy powróci null
. Także gdy chcę zobaczyć wynik Math.floor(x)
, ponownie zwraca null
.
Co mogę zrobić w tej sytuacji? Czy jest na to poprawka?
Można uniknąć aggro tak przez używając wrapperu localStorage jak rhaboo zamiast stringify/pars, które oprócz tego mają wiele innych niedokładności. –