2012-02-20 127 views
4

所以,我需要從這種格式如何格式化JSON日期?

「9/30/2010 12:00:00 AM」,這是MM/DD/YYYY HH格式化JSON日期:MM:SS這樣的格式:DD/MM/YYYY,所以我不需要大約小時,分鐘和秒的信息,我需要更換由JSON個月裏,我嘗試了一些不同的方式,但它始終未能

我需要做到這一點使用jQuery的

也是我沒有找到任何答案,在格式化這個日期類型,所有我發現了在格式化日期這樣的:/日期(1224043200000)/

所以任何人有想法?

+4

有沒有東西JSON日期。你偶然想要一個JavaScript'Date'對象嗎? – 2012-02-20 15:07:18

+0

什麼是/日期(1224043200000)/'? – 2012-02-20 15:07:27

+5

沒有什麼比如「JSON date」,也就是說,JSON沒有日期的數據類型。 – 2012-02-20 15:07:56

回答

4

,你可以從一個字符串創建Date對象,像這樣:

var myDate = new Date(dateString); 

那麼你可以操縱它反正你想,一個辦法讓你期望的輸出是:

var output = myDate.getDate() + "\\" + (myDate.getMonth()+1) + "\\" + myDate.getFullYear(); 

可以在此處查找更多elated.com article "working with dates"

+0

你需要躲避斜線在您的字符串。 '+「\\」+'。 – 2012-02-20 15:25:47

+0

哦,真不錯....感謝@Rocket – JKirchartz 2012-02-20 15:28:25

+0

THX這可能是它,我會嘗試明天 – hullfan 2012-02-20 17:46:24

-2

嘗試類似這樣:

var date = new Date(parseInt(jsonDate.substr(6))); 

其中jsonDate是存儲您的日期變量

+2

您應該添加基地'parseInt':'parseInt函數(X,10)'。 – 2012-02-20 15:26:21

+3

我想你會注意到OP想要從'MM/DD/YYYY HH:MM:SS'格式的日期字符串中獲取日期,而不是'/ Date(ticks)/'格式。 – lsuarez 2012-02-20 15:26:33

+0

substr對我不好,cos substr只是剪掉了字符串的其餘部分,所以它會在第7個字符後全部切割,但有時候字符的數量總是不一樣,cos日期格式可能是這樣的:1/2/2012(8個字符),有時可能是31/10/2011(10個字符) – hullfan 2012-02-20 17:42:12

0

很遺憾,您「從」日期格式是不是其中之一是實現獨立的JavaScript中。所有其他格式都依賴於實現,這意味着即使這種格式可以被大多數實現所理解,我們也不能確定DD和MM的順序是如何解析的(我幾乎可以肯定它會取決於當地的區域設置)。所以我建議使用第三方(或您的手寫)日期解析器從輸入字符串中獲取Date對象。一個這樣的解析器,你可以在這裏找到: http://www.mattkruse.com/javascript/date/

因爲你的問題是我不是100%清楚,有可能是因爲你有你的日期在/日期(數)/這表明正在撥打的是ASP格式.net服務來自您的jQuery代碼。在JSON在這種情況下,解析您可以將其轉換爲Date對象:下面

data = JSON.parse(data, function (key, value) { 
    // parsing MS serialized DateTime strings 
    if (key == '[NAME_OF_DATE_PROPERTY_IN_THE_JSON_STRING]') { 
     return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10)); 
     // maybe new Date(parseInt(value.substr(6))) also works and it's simpler 
    } 
    return value; 
}); 
-1

代碼解決我的問題:

var date = new Date(parseInt(d.data[i].dtOrderDate.replace("/Date(", "").replace(")/", ""), 10)); 
var day = date.getDate(); 
var monthIndex = date.getMonth(); 
var year = date.getFullYear();