Noosphere Possibilities Maximized
    Have ideas to improve npm?Join in the discussion! »

    durational

    1.1.0 • Public • Published

    durational

    Simplistic library for dealing with Durations

    ABNF for Strings

    The strings that this module outputs could be represented with the following ABNF, which is a subset of that found in RFC3339 for Durations:

       dur-second        = 1*DIGIT "S"
       dur-minute        = 1*DIGIT "M" [dur-second]
       dur-hour          = 1*DIGIT "H" [dur-minute]
       dur-time          = "T" (dur-hour / dur-minute / dur-second)
    
       duration          = "P" dur-time
    

    Specifically, this module does not handle Years, Months, Days, or Weeks. It also doesn't accept fractional seconds (milli / nano seconds).

    Example Strings

      PT20S       //  0 Hours,  0 Minutes, 20 Seconds
      PT10M       //  0 Hours, 10 Minutes,  0 Seconds
      PT1H        //  1 Hours,  0 Minutes,  0 Seconds
      PT1H20S     //  1 Hours,  0 Minutes, 20 Seconds
      PT1H10M     //  1 Hours, 10 Minutes,  0 Seconds
      PT1H10M20S  //  1 Hours, 10 Minutes, 20 Seconds
      PT26H10M20S // 26 Hours, 10 Minutes, 20 Seconds
    

    Duration Object

    When a method accepts or returns an object, it'll use the following structure:

      {
        hours: Integer,
        minutes: Integer,
        seconds: Integer
      }
    

    Methods

    fromSeconds(integer)

    Takes an integer and creates a Duration Object. See the source code for details, but seconds are used first, then minutes, then hours.

    For example, fromSeconds(60) would return { hours: 0, minutes: 1, seconds: 0 }

    fromString(string)

    Parses a given String using the format specified above. Returns an Duration Object.

    toString(object | integer)

    Accepts a Duration Object or a integer value representing the duration in seconds. When an integer argument is given, the value is first passed to fromSeconds, in order to get it's Duration Object representation.

    Returns a String matching the ABNF listed above. In the case of the duration having a total length of 0 seconds, PT0S is returned, such that you still can parse it at a later date.

    Install

    npm i durational

    DownloadsWeekly Downloads

    603

    Version

    1.1.0

    License

    MIT

    Last publish

    Collaborators

    • avatar