2012-08-07 9 views
5

mogę utworzyć obiekt Date JavaScript z:Analizować JSON (ISO8601) Data ciąg w JavaScript

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

ten zapisze datę przy użyciu strefy czasowej przeglądarki. Ale powinienem być w stanie to zrobić (nie „z”):

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

ta zwraca takie same jak powyżej, ale zgodnie z normą ISO8601, ciąg bez strefy czasowej (np +01: 00) i bez " Z ', datę należy rozpatrzyć w lokalnej strefie czasowej. Tak więc drugi przykład powyżej powinien zapisać datetime jako 7:47.

Otrzymuję ciąg datetime z serwera i chcę wyświetlić dokładnie tę datetime. Jakieś pomysły?

Odpowiedz

-1

Masz rację, JavaScript nie jest zgodny z ISO8601.

Funkcja ta służy do konwersji do pożądanego formatu:

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

albumu: Mozilla

+4

Spowoduje to utworzenie ciągu daty ISO, nie będzie go parsować –