validar validacion una tablas tabla formularios formulario enviar ejemplos dinamicas datos con antes agregar javascript datetime milliseconds

validacion - ¿Cómo convertir el tiempo en milisegundos en formato de horas, minutos, segundos en JavaScript?



validar formulario javascript html5 (7)

Tengo el tiempo en milisegundos, pero quiero el tiempo después de la conversión como 00:00:00 .

Ej: en milisegundos = 86400000. Quiero cuántas horas en milisegundos como, 00:00:00

¿Cómo conseguirlo en JavaScript?


¿Qué tal hacer esto creando una función en javascript como se muestra a continuación:

function msToTime(duration) { var milliseconds = parseInt((duration % 1000) / 100), seconds = parseInt((duration / 1000) % 60), minutes = parseInt((duration / (1000 * 60)) % 60), hours = parseInt((duration / (1000 * 60 * 60)) % 24); hours = (hours < 10) ? "0" + hours : hours; minutes = (minutes < 10) ? "0" + minutes : minutes; seconds = (seconds < 10) ? "0" + seconds : seconds; return hours + ":" + minutes + ":" + seconds + "." + milliseconds; } console.log(msToTime(300000))


Basado en la respuesta de @Chand. Esta es la implementación en Typescript. Un poco más seguro que los tipos de coacción en JS. Si elimina la anotación de tipo debe ser JS válido. También utiliza nuevas funciones de cadena para normalizar el tiempo.

var sunriseMills = 1517573074000; // sunrise in NewYork on Feb 3, 2018 - UTC time var offsetCityMills = -5 * 3600 * 1000; // NewYork delay to UTC var offsetDeviceMills = new Date().getTimezoneOffset() * 60 * 1000 ; // eg. I live in Romania (UTC+2) >> getTimezoneOffset() = 120 var textTime = new Date(sunriseMills + offsetCityMills + offsetDeviceMills) .toLocaleTimeString(''en-US'', { hour: ''numeric'', minute: ''numeric'' });


Este vuelve el tiempo como videos de youtube.

function getYoutubeLikeToDisplay(millisec) { var seconds = (millisec / 1000).toFixed(0); var minutes = Math.floor(seconds / 60); var hours = ""; if (minutes > 59) { hours = Math.floor(minutes / 60); hours = (hours >= 10) ? hours : "0" + hours; minutes = minutes - (hours * 60); minutes = (minutes >= 10) ? minutes : "0" + minutes; } seconds = Math.floor(seconds % 60); seconds = (seconds >= 10) ? seconds : "0" + seconds; if (hours != "") { return hours + ":" + minutes + ":" + seconds; } return minutes + ":" + seconds; }

Salida:

  • getYoutubeLikeToDisplay (129900) = "2:10"
  • getYoutubeLikeToDisplay (1229900) = "20:30"
  • getYoutubeLikeToDisplay (21229900) = "05:53:50"

Los fragmentos de código anteriores no funcionan para casos con más de 1 día (simplemente se ignoran).

Para esto puedes usar:

function convertMS(ms) { var d, h, m, s; s = Math.floor(ms / 1000); m = Math.floor(s / 60); s = s % 60; h = Math.floor(m / 60); m = m % 60; d = Math.floor(h / 24); h = h % 24; h += d * 24; return h + '':'' + m + '':'' + s; }

Gracias a https://gist.github.com/remino/1563878


Para convertir el tiempo en milisegundos al formato legible por humanos.

function timeConversion(millisec) { var seconds = (millisec / 1000).toFixed(1); var minutes = (millisec / (1000 * 60)).toFixed(1); var hours = (millisec / (1000 * 60 * 60)).toFixed(1); var days = (millisec / (1000 * 60 * 60 * 24)).toFixed(1); if (seconds < 60) { return seconds + " Sec"; } else if (minutes < 60) { return minutes + " Min"; } else if (hours < 24) { return hours + " Hrs"; } else { return days + " Days" } }


Tuve el mismo problema, esto es lo que terminé haciendo:

function parseMillisecondsIntoReadableTime(milliseconds){ //Get hours from milliseconds var hours = milliseconds / (1000*60*60); var absoluteHours = Math.floor(hours); var h = absoluteHours > 9 ? absoluteHours : ''0'' + absoluteHours; //Get remainder from hours and convert to minutes var minutes = (hours - absoluteHours) * 60; var absoluteMinutes = Math.floor(minutes); var m = absoluteMinutes > 9 ? absoluteMinutes : ''0'' + absoluteMinutes; //Get remainder from minutes and convert to seconds var seconds = (minutes - absoluteMinutes) * 60; var absoluteSeconds = Math.floor(seconds); var s = absoluteSeconds > 9 ? absoluteSeconds : ''0'' + absoluteSeconds; return h + '':'' + m + '':'' + s; } var time = parseMillisecondsIntoReadableTime(86400000); alert(time);


mi solución

function displayTime(millisec: number) { const normalizeTime = (time: string): string => (time.length === 1) ? time.padStart(2, ''0'') : time; let seconds: string = (millisec / 1000).toFixed(0); let minutes: string = Math.floor(parseInt(seconds) / 60).toString(); let hours: string = ''''; if (parseInt(minutes) > 59) { hours = normalizeTime(Math.floor(parseInt(minutes) / 60).toString()); minutes = normalizeTime((parseInt(minutes) - (parseInt(hours) * 60)).toString()); } seconds = normalizeTime(Math.floor(parseInt(seconds) % 60).toString()); if (hours !== '''') { return `${hours}:${minutes}:${seconds}`; } return `${minutes}:${seconds}`; }

textTime se convertirá en '' 7.04 AM ''