A light weight relative time notation parser (e.g. 1d 2h, 3m, 4s is rendered as a relative date).
JavaScript HTML
Switch branches/tags
Nothing to show
Latest commit e7ab802 Nov 17, 2015 @rsdoiel Create LICENSE
Permalink
Failed to load latest commit information.
examples
extras
tests
.gitignore
.travis.yml
LICENSE
README.md
package.json
reltime.js

README.md

reltime

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

Example

Task

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

Code

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

Task

Calculate the time 45 days ago.

Code

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