Tengo un temporizador en mi proyecto, tengo formato de hora en segundos 90000 Quiero transformar segundos en horas y minutos (HH:mm) usando moment.js, me pregunto como puedo obtener la hora exacta, si el tiempo es menor a 86399 moment funciona como se esperaba, pero mi objetivo es obtener ese resultado 25:00 , ¿es esto posible con moment?
const secs = 90000; const formatted = moment.utc(secs*1000).format('HH:mm'); document.write(formatted); <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>No es posible con moment ya que moment funciona con formatos de 12/24 horas. Sin embargo, puedes usar matemáticas básicas
const formatMMSS = (timeInSeconds) => { const time = (timeInSeconds/60/60).toFixed(2) const hh = time.split('.')[0] let mm = (parseFloat('0.'+time.split('.')[1])*60).toString().split('.')[0] if(mm.length == 1){ mm = '0'+mm } return hh+':'+ mm; } console.log(formatMMSS(90000));Prueba esto
var seconds = 90000; // multiply by 1000 because Date() requires miliseconds var date = new Date(seconds * 1000); var hh = date.getUTCHours(); var mm = date.getUTCMinutes(); var ss = date.getSeconds(); // If you were building a timestamp instead of a duration, you would uncomment the following line to get 12-hour (not 24) time // if (hh > 12) {hh = hh % 12;} // These lines ensure you have two-digits if (hh < 10) {hh = "0"+hh;} if (mm < 10) {mm = "0"+mm;} if (ss < 10) {ss = "0"+ss;} // This formats your string to HH:MM:SS var t = hh+":"+mm+":"+ss; document.write(t); // result 1:00:00