2012-08-07 16 views
5

puedo crear un objeto Date de JavaScript con:Analizar JSON (ISO8601) cadena de fecha en JavaScript

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

Esto escribirá la fecha con la zona horaria del navegador. Pero debería ser capaz de hacerlo (sin 'Z'):

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

Esto devuelve el mismo que el anterior, pero de acuerdo a la norma ISO8601, una cadena sin una zona horaria (por ejemplo, 01: 00) y sin ' Z ', la fecha debe considerarse en la zona horaria local. Por lo tanto, el segundo ejemplo anterior debe escribir la fecha y hora como a las 7:47 a.m.

Estoy recibiendo una cadena de fecha y hora de un servidor y quiero mostrar exactamente esa fecha y hora. ¿Algunas ideas?

Respuesta

-1

Tienes razón, Javascript no funciona bien con el ISO8601.

Utilice esta función para convertir al formato deseado:

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

Tomado de: Mozilla

+4

Esto crea una cadena de fecha ISO, no la analiza –

Cuestiones relacionadas