2012-08-07 14 views
5

posso creare un oggetto JavaScript Date con:Parse JSON (ISO8601) stringa della data in JavaScript

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

Questo scriverà la data utilizzando il fuso orario del browser. Ma dovrei essere in grado di fare (no 'Z'):

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

Questo restituisce lo stesso come sopra, ma secondo lo standard ISO8601, una stringa senza un fuso orario (ad esempio, 01: 00) e senza ' Z ', la data dovrebbe essere considerata nel fuso orario locale. Quindi il secondo esempio sopra dovrebbe scrivere il datetime come 7:47 del mattino.

Ricevo una stringa datetime da un server e voglio visualizzare esattamente quel datetime. Qualche idea?

risposta

-1

Hai ragione, JavaScript non funziona bene con ISO8601.

Usare questa funzione per convertire nel formato desiderato:

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

Tratto da: Mozilla

+4

Questo crea una stringa di data ISO, non la analizza –