2012-08-07 48 views
5

我可以創建一個JavaScript Date對象:解析JSON(ISO8601)日期字符串在JavaScript

var d=new Date('2012-08-07T07:47:46Z'); 
document.write(d); 

這將寫使用瀏覽器的時區的日期。但是,我應該能夠做到(沒有「Z」):

var d=new Date('2012-08-07T07:47:46'); 
document.write(d); 

這將返回與上面相同,但按照ISO8601標準,一個字符串沒有一個時區(如+01:00)和不「 Z',日期應該在當地時區考慮。所以上面的第二個例子應該把日期時間寫成上午7:47。

我從服務器得到一個日期時間字符串,我想顯示確切的日期時間。有任何想法嗎?

回答

-1

您說得對,Javascript與ISO8601不兼容。

使用此功能轉換爲所需的格式:

function ISODateString(d) { 
    function pad(n){ 
    return n<10 ? '0'+n : n 
    } 
    return d.getUTCFullYear()+'-' 
    + pad(d.getUTCMonth()+1)+'-' 
    + pad(d.getUTCDate())+'T' 
    + pad(d.getUTCHours())+':' 
    + pad(d.getUTCMinutes())+':' 
    + pad(d.getUTCSeconds())+'Z' 
} 
var d = new Date(); 
print(ISODateString(d)); 

來自Mozilla

+4

這創建一個ISO日期字符串,它不解析它 – 2014-08-11 14:24:34