Bueno, estoy tratando de formatear milisegundos a dd:hh:mm:ss. Tengo fe 206000 milisegundos.
Esto debe formatearse así: 00:00:03:26.
Pero si uso este código:
showTimeWithHour(milliSeconds: number): string { const date = new Date(milliSeconds); return formatDate(date, 'dd:hh:mm:ss', 'en-US') }Obtengo este resultado: 01:01:03:26 pero debería ser este 00:00:03:26.
Puedes hacer lo siguiente,
function showTimeWithHour(milliSeconds) { days = Math.floor(milliSeconds / (24 * 60 * 60 * 1000)); daysFromMilliSeconds = milliSeconds % (24 * 60 * 60 * 1000); hours = Math.floor((daysFromMilliSeconds) / (60 * 60 * 1000)); hoursFromMilliSeconds = milliSeconds % (60 * 60 * 1000); minutes = Math.floor((hoursFromMilliSeconds) / (60 * 1000)); minutesFromMilliSeconds = milliSeconds % (60 * 1000); seconds = Math.floor((minutesFromMilliSeconds) / (1000)); days = days.toString().length == 1 ? days.toString().padStart(2, '0') : days.toString(); hours = hours.toString().length == 1 ? hours.toString().padStart(2, '0') : hours.toString(); minutes = minutes.toString().length == 1 ? minutes.toString().padStart(2, '0') : minutes.toString(); seconds = seconds.toString().length == 1 ? seconds.toString().padStart(2, '0') : seconds.toString(); return days + ":" + hours + ":" + minutes + ":" + seconds; } console.log(showTimeWithHour(206000));Esto podría funcionar:
const timeWithMs = () => `${new Date().toLocaleString('en-GB').split(' ')[1]}:${new Date().getMilliseconds()}`; console.log(timeWithMs());Básicamente, estoy tomando la hora actual y añadiéndole los milisegundos actuales.
si desea que los milisegundos se formatee en solo 2 números, puede hacer lo siguiente:
const timeWithMs = () => `${new Date().toLocaleString('en-GB').split(' ')[1]}:${new Date().getMilliseconds().toString().slice(0,2)}`; console.log(timeWithMs());Y también puede obtener la fecha como parámetro de la función:
const timeWithMs = (date) => `${date.toLocaleString('en-GB').split(' ')[1]}:${date.getMilliseconds().toString().slice(0,2)}`; const someDate = new Date(12487125); console.log(timeWithMs(someDate));