2010-09-22 102 views
1

我有一个JSON源,发送其数据,我的网页上显示。问题是,它返回的日期部分是某种javascript对象。JSON日期问题解析

请看样本回应。

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隐藏输入它更新数据到对象对象。

$("div#pmItems").find("#dteInstallDate").val(data.resource_data.dteInstallDate); 

我想如何从服务器端发送日期对象到Javascript。我应该将其转换为字符串还是将其作为长整型值发送。你认为哪一个更好?

我有Spring MVC的作为我的后端

+0

请将JSON格式样本。 – Reigel 2010-09-22 02:41:13

回答

2

你有一个JSON源,正确吗? JSON只是跨语言交流目的的符号标准。虽然JSON对象与简写的Javascript对象具有相同的表示法,但它实际上只是任何语言中任何对象的表示形式。如果你要得到一个JSON提要看起来像这样:

{ 
    "dteInstallDate": 
    { 
     "date"  : 16, 
     "day"  : 4, 
     "hours"  : 0, 
     "month"  : 8, 
     "nanos"  : 0, 
     "seconds" : 0, 
     "time"  : 1284566400000, 
     "timezoneOffset": -480, 
     "year"  : 110 
    } 
} 

在Javascript中,所有你需要做的就是调出dteInstallDate.time财产,并把它变成一个新的Date()对象。一个工作的例子是在这里:

http://jsfiddle.net/kAxfY/

正如你所看到的,时间是有点过,他们说什么......我试图与timezoneoffset的鬼混,以使其更加准确,但我做不到。通常情况下,时区偏移是在几分钟内完成的,因此-480意味着它将在GMT之后-480/60 = -8小时。对于javascript日期对象的更多信息,请参阅本页面:

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);