tengo una fecha como esta que debo convertir a formato ISO
const date = 05/23/2022;
necesito asi
2022-05-23T00:00:00Z
Tenga en cuenta que .toISOString() siempre devuelve una marca de tiempo en UTC , incluso si el momento en cuestión está en modo local. Esto se hace para proporcionar consistencia con la especificación para JavaScript nativo Fecha .toISOString() , como se describe en la especificación ES2015 .
let date = '24.05.2022 0:00:00'; let parsedDate = moment(date, 'DD.MM.YYYY H:mm:ss') console.log(parsedDate.toISOString()); <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>Puede usar String.split() para obtener el día, mes y año de la fecha en cuestión.
Luego podemos pasar a la función Date.UTC() y luego al constructor Date() . (Nota: Pasamos monthIndex al constructor Date, por eso restamos 1 del mes)
Para mostrar como una cadena ISO, podemos usar Date.toISOString()
const [month, day, year] = '05/23/2022'.split('/'); const date = new Date(Date.UTC(year, month - 1, day)); const result = date.toISOString(); console.log('Date (ISO):', result); También podemos hacer esto fácilmente con una biblioteca de Fecha/Hora como luxon .
Usaríamos la función DateTime.fromFormat() para analizar la cadena de entrada, configurando la zona horaria en 'UTC'.
Para generar la fecha ISO, podemos usar la función DateTime.toISO() :
const { DateTime } = luxon; const date = DateTime.fromFormat('05/23/2022', 'MM/dd/yyyy', { zone: 'UTC'}); console.log('Date (ISO):', date.toISO()) <script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js" integrity="sha512-Nw0Abk+Ywwk5FzYTxtB70/xJRiCI0S2ORbXI3VBlFpKJ44LM6cW2WxIIolyKEOxOuMI90GIfXdlZRJepu7cczA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> También podemos hacer esto en moment.js, usando moment.utc() , luego .toISOString() :
const date = moment.utc('05/23/2022', 'MM/DD/YYYY'); console.log('Date (ISO):', date.toISOString()) <script src="https://momentjs.com/downloads/moment.js"></script>