【发布时间】:2012-07-14 13:41:32
【问题描述】:
我正在尝试使用 JavaScript 计算两次之间的差异。这只是基本数学,但我在使用 JSON.stringify() 和 JSON.parse() 时似乎遇到了一些问题。
如果您想知道为什么我将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 来避免这样的仇恨,除了这个之外还有许多其他的不准确之处。
标签: javascript json date