¿Puede alguien, por favor, explicar este tipo de formato en javascript?
T00:00:00.000Z¿Y cómo analizarlo?
Es una parte de la representación de fecha ISO-8601 . Está incompleto porque una representación de fecha completa en este patrón también debería contener la fecha:
2015-03-04T00:00:00.000Z //Complete ISO-8601 date Si intenta analizar esta fecha tal como es, recibirá un Invalid Date válida:
new Date('T00:00:00.000Z'); // Invalid DateEntonces, supongo que la forma de analizar una marca de tiempo en este formato es concatenar con cualquier fecha
new Date('2015-03-04T00:00:00.000Z'); // Valid DateLuego puede extraer solo la parte que desea (parte de marca de tiempo)
var d = new Date('2015-03-04T00:00:00.000Z'); console.log(d.getUTCHours()); // Hours console.log(d.getUTCMinutes()); console.log(d.getUTCSeconds());Te sugiero que uses moment.js para esto. En moment.js puedes:
var localTime = moment().format('YYYY-MM-DD'); // store localTime var proposedDate = localTime + "T00:00:00.000Z";ahora que tiene el formato correcto por un tiempo, analícelo si es válido:
var isValidDate = moment(proposedDate).isValid(); // returns true if valid and false if it is not.y para obtener partes de tiempo puedes hacer algo como:
var momentDate = moment(proposedDate) var hour = momentDate.hours(); var minutes = momentDate.minutes(); var seconds = momentDate.seconds(); // or you can use `.format`: console.log(momentDate.format("YYYY-MM-DD hh:mm:ss AZ"));Más información sobre momentjs http://momentjs.com/
Como una persona ya puede haber sugerido,
Pasé la cadena de fecha ISO 8601 directamente al momento así...
moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')o
moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')cualquiera de estas soluciones le dará el mismo resultado.
console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019Más información sobre momentjs http://momentjs.com/