我想使用JavaScript計算兩次之間的差異。這只是基本的數學,但我似乎有一些問題,同時使用JSON.stringify()
和JSON.parse()
。使用JSON.stringify()和JSON.parse()時發生Date()
如果您想知道我爲什麼要將JSON.stringify()
函數應用到日期,那是因爲我使用本地存儲將一些數據存儲在客戶端,並在客戶端再次登錄到我的網站時使用它(這樣做更快而不是向服務器發出更多請求)。該數據通常會稍後更新一次(我通過其他網站的API獲取數據),因此我設置了一個data_update
變量,並將其與其他數據一起存儲。
這樣我就可以從本地存儲中獲取存儲的數據,並檢查data_update
(這是日期/時間)與檢查它的時間/日期之間的差異,看看它是否大於一週/天/等。
所以這就是我使用JSON函數的原因。我的問題是,當我從本地存儲解析數據時,日期似乎與Date()
對象不同。
我試圖做每下一次操作說:
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));
以上將返回null
。另外,當我想要查看Math.floor(x)
結果時,它會再次返回null
。
那麼在這種情況下我該怎麼辦?有沒有解決這個問題?
你能避免這樣的仇恨使用像rhaboo這樣的localStorage包裝器而不是stringify/parse,除此之外還有許多其他不準確之處。 – 2015-04-21 05:08:36