2010-09-22 187 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);