Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

130
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda