node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



A light weight relative time notation parser (e.g. 1d 2h, 3m, 4s is rendered as a relative date).

Overview and rationale

When building command line utilities I occasionally need to express time in a simple relative notation of day, hours, minutes and seconds (e.g. 1d 2h 3m 4s). There is a good, full featured time/date module called moment but it is also much more than what I need. That lead to reltime.js. It is a very simple relative time notation parser that only works on days, hours, minutes and seconds. It's less than 100 lines unminified.

    23 hours 4 minutes 2 seconds
    -23h 5m 6s

This is particularly helpful with command line utilities where you might have a parameter to process a relative time to the present. E.g.

    node mytool.js --update-since="-17m -2s"

Using moment.js to parse this one simple phrase just seems like overkill to me so that is why I've written reltime.js. It has three methods -

  • parse(JS_DATE_OBJECT, SIMPLE_TIME_STRING) - parse a relative time string
  • valueOf() - return the equivalent of JavaScript's Date's valueOf()
  • toString() - return the equivalent of JavaScript's Date's toString()



Compute the relative time of one hour, three minutes and ten seconds in the future:


    var reltime = require("reltime");
    console.log("Show one hour, three minutes and ten seconds in the future",
        reltime.parse(new Date(), "1h 3m 10s").toString());


Calculate the time 45 days ago.


    var reltime = require("reltime");
    console.log("45 days ago", reltime.parse(new Date(), "-45d").toString());