Search code examples
javascriptmomentjsdurationiso8601

Convert milliseconds to an ISO 8601 duration


What is the easiest way to convert a time duration in milliseconds to an ISO 8601 duration using Moment.js?

For example:

3600000 milliseconds > PT1H

Solution

  • You can do it like:

    // Duration 1 hour
    var duration = moment.duration(1, 'h');
    console.log( duration.asMilliseconds() )   // 3600000
    
    // Convert to ISO8601 duration string
    console.log( duration.toISOString() )      // "PT1H"
    

    Also, 5 minutes like:

    var duration = moment.duration(5, 'm');
    console.log( duration.asMilliseconds() )   // 300000
    
    // Convert to ISO8601 duration string
    console.log( duration.toISOString() )      // "PT5M"