可能重复:
我从JavaScript调用$getJSON得到了以下结果。如何在JavaScript中将start属性转换为适当的日期?
{"id":1,"start":"/Date(1238540400000)/"},{"id":2,"start":"/Date(1238626800000)/"}
谢谢!
发布于 2009-08-07 10:53:58
您需要从字符串中提取数字,并将其传递到日期constructor
中
var x = [{
"id": 1,
"start": "\/Date(1238540400000)\/"
}, {
"id": 2,
"start": "\/Date(1238626800000)\/"
}];
var myDate = new Date(x[0].start.match(/\d+/)[0] * 1);
这些部分包括:
x[0].start - get the string from the JSON
x[0].start.match(/\d+/)[0] - extract the numeric part
x[0].start.match(/\d+/)[0] * 1 - convert it to a numeric type
new Date(x[0].start.match(/\d+/)[0] * 1)) - Create a date object
发布于 2011-06-02 19:14:15
我使用的是:
function parseJsonDate(jsonDateString){
return new Date(parseInt(jsonDateString.replace('/Date(', '')));
}
更新2018:
这是一个古老的问题。我建议修改服务器代码以返回更好的日期格式,而不是仍然使用这种旧的非标准序列化格式。包含时区信息的ISO字符串,或仅包含毫秒。如果您仅使用毫秒进行传输,则在服务器和客户端上应为UTC
。
2018-07-31T11:56:48Z
-可以使用dateObject.toISOString()
1533038208000
解析ISO字符串,并使用dateObject.getTime()
从Date
对象中获取该字符串-自1970年1月1日午夜以来的毫秒
发布于 2010-12-28 00:11:05
如果您使用jQuery
如果您在客户端使用jQuery,您可能会对this blog post感兴趣,它提供了如何全局扩展jQuery的$.parseJSON()
函数以自动为您转换日期的代码。
在添加此代码的情况下,您不必更改现有代码。它不会影响对$.parseJSON()
的现有调用,但如果您开始使用$.parseJSON(data, true)
,data
字符串中的日期将自动转换为Javascript日期。
它支持Asp.net日期字符串:/Date(2934612301)/
以及2010-01-01T12_34_56-789Z
字符串。第一个是最常用的后端web平台,第二个是本地浏览器JSON支持(以及其他JSON客户端库,如json2.js)。
不管怎么说。转到博客文章获取代码。http://erraticdev.blogspot.com/2010/12/converting-dates-in-json-strings-using.html
https://stackoverflow.com/questions/1244094
复制相似问题