Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

133
Vistas
Formateo de marca de tiempo de fecha personalizada en Javascript

Tengo un formato de fecha personalizado así: new Date("02:56:12,80")

Empecé a analizar manualmente la hora, el minuto, el segundo y los milisegundos, pero es tedioso y tiene mucho código, probablemente propenso a errores. ¿Es posible tener un formato personalizado para que coincida con esta cadena para convertir a segundos?

Así es como estoy generando este formato para comenzar desde segundos:

 const formatTimeFromSeconds = (seconds) => { dateObj = new Date(seconds * 1000); hours = dateObj.getUTCHours(); minutes = dateObj.getUTCMinutes(); seconds = dateObj.getSeconds(); milliseconds = dateObj.getMilliseconds(); timeString = hours.toString().padStart(2, "0") + ":" + minutes.toString().padStart(2, "0") + ":" + seconds.toString().padStart(2, "0") + "," + milliseconds.toString().padStart(2, "0"); return timeString; };

Intentar:

 const dateToSeconds = (time) => { try { const times = time.split(":") const secondDelimit = times[2].split(".") const secondsConversion = parseInt(secondDelimit[0]) const hoursToSeconds = parseInt(times[0]) * 60 * 60 const minutesToSeconds = parseInt(times[1]) * 60 const totalSeconds = minutesToSeconds + hoursToSeconds + secondsConversion return `${totalSeconds}.${secondDelimit[1]}` } catch (err) { console.error(err) } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede trabajar desde el formato ISO (YYYY-mm-ddThh:mm:ss.sssZ) y usar una expresión regular para extraer la parte exacta, reemplazando el punto con una coma:

 const formatTimeFromSeconds = (seconds) => { const date = new Date(seconds*1000); return date.toISOString().match(/^.*T(.*)\d{1}Z$/)[1].replace(".",","); }

De esta manera, no tiene que extraer cada parte manualmente.

La expresión regular extrae en un grupo todo el texto entre la T y el último dígito antes de la Z. Se obtiene el grupo (índice 1 de la matriz resultante) y se realiza el reemplazo sobre él.

Puede agregar try/catch para cualquier error durante la conversión para hacer que la función sea más sólida frente a parámetros no válidos o agregar validaciones al argumento.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Instale Luxon: https://moment.github.io/luxon/#/?id=luxon

 npm install luxon

Entonces es una simple cuestión de...

 const { DateTime } = require( 'luxon' ) ; const dt = DateTime.local( 2022, 6, 18, 22, 37, 9, 456 ) ; const formatted = dt.toFormat('HH:mm:ss,uu') ; // use 'hh' for 12-hour time console.log(`formatted: ${formatted}`) ;

y obten

 formatted: 22:37:09,45

Si quieres rodar el tuyo...

 dt = new Date(); console.log(`formatted: ${dt2time(dt)}`) function dt2time(dt) { const hh = str( dt.getHours() ); const mm = str( dt.getMinutes() ) ; const ss = str( dt.getSeconds() ) ; const tt = str( Math.round( dt.getMilliseconds() / 10 ) ) ; return `${hh}:${mm}:${ss},${tt}`; function str(n) { const s = String(n).padStart(2,'0'); return s; } }

Pero usa Luxon. Es pequeño. Es compatible con la localización. Está limpio. Y el código que no escribe es código que no tiene que mantener.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda