我想加载一些数据,通过aplog和有日期自动解析。
var url = "http://example.com/report_containing_dates.json"
jQuery.getJSON(url, function(data_containing_dates_and_strings){
console.log(date);
});
我的json中的日期格式是“2012-09-28”(rails到_json的默认格式),但jQuery只是将其视为字符串。jquery需要什么格式的日期才能将其解析为日期?
样品响应:
{
"columns": [
["date", "Date"],
["number", "active_users"],
],
"rows": [
["2012-09-28", 120, 98, 60],
["2012-09-29", 127, 107, 63]
]
}
5条答案
按热度按时间jxct1oxe1#
当我们试图使用Ajax调用从数据库中读取日期时间值时,返回如下值:**/Date(1634564200000)/**和html表绑定列值也是这样显示的。如果你正在替换一些字符,那么你可以找到解决方案。
var DOB= new Date(eval('new' + response.d[0].dob.replace(/g,' '); var Read_Date = DOB.getMonth()'/' + DOB.getDate()+ '/' + SDate.getFullYear(); alert(Read_Date)
sycxhyv72#
如何格式化日期字符串并不重要。JSON方法永远不会自动将其转换为
Date
对象。JSON只支持这些基本类型:Number
、String
、Boolean
、Array
、Object
和null
。(http://en.wikipedia.org/wiki/JSON)您必须自己将这些日期字符串转换为
Date
对象。在你的情况下,这可能是这样的:
w80xi6nr3#
使用Date.parse,将字符串转换为日期。
egmofgnx4#
好吧,这比想象的要难得多,但我有一个解决方案。
我所采用的方法是在apache请求中请求一个自定义数据类型,然后实现一个自定义转换器。
首先,我在json中使用的日期格式现在是date(“yyyy-mm-dd”),原始示例如下所示:
然后注册一个转换器,将文本转换为一个名为json_with_dates的自定义数据类型。正则表达式用于搜索日期格式并将其替换为语句以创建日期对象。然后使用Eval来构造json。
然后,我对自定义数据类型发出了aplog请求:
nhjlsmyf5#
最好自己解析日期。我在某些浏览器中遇到了一些问题,它们没有像你期望的那样从字符串中解析出日期。下面是一个快速原型,用于字符串
2012-09-28
:EXAMPLE
从一个类似的问题:IE JavaScript date parsing error
parse方法完全依赖于实现(newDate(string)等效于Date.parse(string))