How to convert time milliseconds to hours, min, sec format in JavaScript?

后端 未结 16 2339
渐次进展
渐次进展 2020-11-29 02:28

I have the time as milliseconds, but I want the time after conversion like 00:00:00.

Ex: In milliseconds=86400000. I want how many hours in that millise

相关标签:
16条回答
  • 2020-11-29 02:59

    This one returns time like youtube videos

        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;
        }
    

    Output:

    • getYoutubeLikeToDisplay(129900) = "2:10"
    • getYoutubeLikeToDisplay(1229900) = "20:30"
    • getYoutubeLikeToDisplay(21229900) = "05:53:50"
    0 讨论(0)
  • 2020-11-29 03:00

    In my implementation I used Moment.js:

    export default (value) => 
      const duration = moment.duration(value);
    
      const milliseconds = duration.milliseconds();
      const seconds = duration.seconds();
      const minutes = duration.minutes();
      const hours = duration.hours();
      const day = duration.days();
    
      const sDay = `${day}d `;
      const sHours = (hours < 10) ? `0${hours}h ` : `${hours}h `;
      const sMinutes = (minutes < 10) ? `0${minutes}' ` : `${minutes}' `;
      const sSeconds = (seconds < 10) ? `0${seconds}" ` : `${seconds}" `;
      const sMilliseconds = `${milliseconds}ms`;
    
      ...
    }
    
    

    Once got the strings, I composed them as I want.

    0 讨论(0)
  • 2020-11-29 03:02

    To Convert time in millisecond to human readable format.

     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"
            }
        }
    

    0 讨论(0)
  • 2020-11-29 03:04

    I works for me as i get milliseconds=1592380675409 using javascript method getTime() which returns the number of milliseconds between midnight of January 1, 1970 and the specified date.

    var d = new Date();//Wed Jun 17 2020 13:27:55 GMT+0530 (India Standard Time)
    var n = d.getTime();//1592380675409 this value is store somewhere
    
    //function call 
    console.log(convertMillisecToHrMinSec(1592380675409));
    
    var convertMillisecToHrMinSec = (time) => {
      let date = new Date(time);
      let hr = date.getHours();
      let min = date.getMinutes();
      let sec = date.getSeconds();
    
      hr = (hr < 10) ? "0"+ hr : hr;
      min = (min < 10) ? "0"+ min : min;
      sec = (sec < 10) ? "0"+ sec : sec;
    
      return hr + ':' + min + ":" + sec;//01:27:55
    }
    
    0 讨论(0)
  • 2020-11-29 03:07

    Human-readable code for human-readable output and you can extend this to light years or nanoseconds or what have you very intuitively. Obviously you'd want to convert this to a function and re-use some of those intermediate modulo calls.

    second = 1000 
    minute = second * 60
    hour = minute * 60 
    day = hour * 24
    
    test = 3 * day + 2 * hour + 11 * minute + 58 * second
    
    console.log(Math.floor(test / day))
    console.log(Math.floor(test % day / hour))
    console.log(Math.floor(test % day % hour / minute))
    console.log(Math.floor(test % day % hour % minute / second))
    
    0 讨论(0)
  • 2020-11-29 03:09

    Sorry, late to the party. The accepted answer did not cut it for me, so I wrote it myself.

    Output:

    2h 59s
    1h 59m
    1h
    1h 59s
    59m 59s
    59s
    

    Code (Typescript):

    function timeConversion(duration: number) {
      const portions: string[] = [];
    
      const msInHour = 1000 * 60 * 60;
      const hours = Math.trunc(duration / msInHour);
      if (hours > 0) {
        portions.push(hours + 'h');
        duration = duration - (hours * msInHour);
      }
    
      const msInMinute = 1000 * 60;
      const minutes = Math.trunc(duration / msInMinute);
      if (minutes > 0) {
        portions.push(minutes + 'm');
        duration = duration - (minutes * msInMinute);
      }
    
      const seconds = Math.trunc(duration / 1000);
      if (seconds > 0) {
        portions.push(seconds + 's');
      }
    
      return portions.join(' ');
    }
    
    console.log(timeConversion((60 * 60 * 1000) + (59 * 60 * 1000) + (59 * 1000)));
    console.log(timeConversion((60 * 60 * 1000) + (59 * 60 * 1000)              ));
    console.log(timeConversion((60 * 60 * 1000)                                 ));
    console.log(timeConversion((60 * 60 * 1000)                    + (59 * 1000)));
    console.log(timeConversion(                   (59 * 60 * 1000) + (59 * 1000)));
    console.log(timeConversion(                                      (59 * 1000)));
    
    0 讨论(0)
提交回复
热议问题