我有一个JSON源,可以发送我在网页上显示的数据。问题是, 它返回的日期部分是某种javascript对象。
请查看示例回复。
dteInstallDate
date 16
day 4
hours 0
minutes 0
month 8
nanos 0
seconds 0
time 1284566400000
timezoneOffset -480
year 110
当我尝试将对象打印为console.log时。它打印
data.resource_data.dteInstallDate.toString()
[object Object]
我的问题是我想将这个JSON响应设置为我的Jquery隐藏输入,它将数据更新为Object Object。
$("div#pmItems").find("#dteInstallDate").val(data.resource_data.dteInstallDate);
我正在考虑如何将Date对象从服务器端发送到Javascript。我应该将其转换为字符串还是将其作为长值发送。你认为哪一个更好?
我有Spring MVC作为我的后端
答案 0 :(得分:2)
你有一个JSON源,对吗? JSON只是用于跨语言通信目的的标准标准。虽然JSON对象与简写声明的Javascript对象具有相同的符号,但它实际上只是任何语言中任何对象的表示。如果您要获得如下所示的JSON Feed:
{
"dteInstallDate":
{
"date" : 16,
"day" : 4,
"hours" : 0,
"month" : 8,
"nanos" : 0,
"seconds" : 0,
"time" : 1284566400000,
"timezoneOffset": -480,
"year" : 110
}
}
在Javascript中,您所要做的就是调用dteInstallDate.time
属性并将其放入新的Date()对象中。一个工作的例子在这里:
正如你所看到的,时间稍微偏离了他们所说的......我试着用timezoneOffset来愚弄它以使其更准确,但我做不到。通常情况下,时区偏移在几分钟内完成,因此-480意味着它比GMT慢-480/60 = -8
小时。有关Javascript Date对象的更多信息,请参阅此页:
http://www.w3schools.com/jsref/jsref_obj_date.asp
编辑:或许还有更多关于帖子的内容......只要有足够的信息可以创建足够的信息,将这些数据发送到浏览器并不重要Javascript中的Date对象。创建日期对象的四个选项是:
//no argument means it will create a date representing the local time on the machine on which the browser is running
var d = new Date();
//milliseconds
var d = new Date(1284566400000);
//a string
var d = new Date("October 13, 1975 11:13:00");
//giving precise values for each unit of time
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);