当前位置: 首页 > 面试题库 >

使用JSON.stringify()和JSON.parse()时Date()出现问题

习胤运
2023-03-14
问题内容

我正在尝试使用JavaScript计算两次之间的差异。这只是基本的数学运算,但是在使用JSON.stringify()and
时,我似乎对此有一些疑问JSON.parse()

如果您想知道为什么要将JSON.stringify()功能应用于日期,那是因为我使用本地存储在客户端存储一些数据,并在客户端再次访问我的网站时使用它(这种方式比发出更多请求要快)到服务器)。该数据通常会不时更新一次(我是通过另一个网站的API获取数据),因此我设置了一个data_update变量,并将其与其他数据一起存储。

这样,我从本地存储中获取存储的数据,并检查检查时data_update(日期/时间)和时间/日期之间是否存在差异,并查看其是否大于一周/天/ etc。

这就是为什么我使用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再次返回。

那么在这种情况下我该怎么办?有解决办法吗?


问题答案:

如果查看JSON.stringify的Date的输出,则会看到:

JSON.stringify(new Date())

结果为字符串。JSON没有Date对象的原始表示,JSON.parse会自动将其转换回Date对象。

Date对象的构造函数可以使用日期字符串,因此您可以通过执行以下操作将这些字符串值转换回日期:

var x = new Date(JSON.parse(JSON.stringify(new Date())));

然后算术将起作用。

x = new Date(JSON.parse(JSON.stringify(new Date())))
y = new Date(JSON.parse(JSON.stringify(new Date())))
y - x
=> 982


 类似资料:
  • 本文向大家介绍JSON.parse()和JSON.stringify()使用介绍,包括了JSON.parse()和JSON.stringify()使用介绍的使用技巧和注意事项,需要的朋友参考一下 parse用于从一个字符串中解析出json对象,如 结果: 注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。 stringify()用于从一个对象解析出字符串,如 结果: PS:关于js

  • 本文向大家介绍浅谈JSON.parse()和JSON.stringify(),包括了浅谈JSON.parse()和JSON.stringify()的使用技巧和注意事项,需要的朋友参考一下 1.parse 用于从一个字符串中解析出json 对象。例如 var str='{"name":"cpf","age":"23"}' 经 JSON.parse(str) 得到: ps:单引号写在{}外,每个属性都

  • 问题内容: 我对于何时使用这两种解析方法感到困惑。 在回显我的json_encoded数据并通过ajax将其检索回去之后,我常常会困惑何时应该使用 JSON.stringify 和 JSON.parse 。 我得到我 的console.log 字符串化时解析和JavaScript对象时。 问题答案: 将JavaScript对象转换为JSON文本并将该JSON文本存储在字符串中,例如: 将JSON文

  • 问题内容: 我正在随处使用,并且可以在Firefox上正常使用。它不再与IE9一起工作,也不再在IE8中工作。我能做什么? 问题答案: 为什么要依赖具有对象的浏览器,而不是只包含Douglas Crockford的脚本文件。您可以在这里找到缩略文件:http : //www.json.org/js.html 导入后,您不必担心浏览器中现有的方法。

  • 本文向大家介绍关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法,包括了关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法的使用技巧和注意事项,需要的朋友参考一下 1. JSON.parse(jsonString): 在一个字符串中解析出JSON对象 结果: 2. JSON.string

  • 问题内容: 我在使用Hibernate和SQL Server 2008时遇到问题。当我尝试将对象保存到数据库时,Hibernate抛出此错误: 用户在数据库中具有选择,插入,更新特权。所以我排除了这个问题。 这是生成的SQL: 如果我在SQL Server中运行上述SQL,它说无效的对象名称emanagement.patient_visit,但是如果我手动添加该“ dbo” emanagement