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

后端 未结 16 2341
渐次进展
渐次进展 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 03:19

    my solution

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

    textTime will become '7.04 AM'

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

    I had the same problem, this is what I ended up doing:

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

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

    How about doing this by creating a function in javascript as shown below:

    function msToTime(duration) {
      var milliseconds = parseInt((duration % 1000) / 100),
        seconds = Math.floor((duration / 1000) % 60),
        minutes = Math.floor((duration / (1000 * 60)) % 60),
        hours = Math.floor((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))

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

    Here is my solution

    let h,m,s;
    h = Math.floor(timeInMiliseconds/1000/60/60);
    m = Math.floor((timeInMiliseconds/1000/60/60 - h)*60);
    s = Math.floor(((timeInMiliseconds/1000/60/60 - h)*60 - m)*60);
    

    // to get time format 00:00:00

    s < 10 ? s = `0${s}`: s = `${s}`
    m < 10 ? m = `0${m}`: m = `${m}`
    h < 10 ? h = `0${h}`: h = `${h}`
    
    
    console.log(`${s}:${m}:${h}`);
    
    0 讨论(0)
提交回复
热议问题