tiny-time

DSL for creating Dates

tiny-time

Tiny DSL for creating Dates. Inspired by David Chambers' an.hour.ago, except without modifying Number.prototype.

  • now current timestamp (same as +new Date())

As well as representation of units of time (plural, singular) for seconds, minutes, hours, days, weeks, months (30 days), years (365 days)

  t(1).second // 1000
  t(3).minutes // 180000
  t(5).days // 1000 * 60 * 60 * 24 * 5

Comparators can accept a Date object, and return a Date object with the difference relative to the argument.

var newYears = new Date('1/1/2013'); // Tue Jan 01 2013 00:00:00 GMT-0800 (PST)
t(10).days.before(newYears); // Sat Dec 22 2012 00:00:00 GMT-0800 (PST)

after and from are the same method.

  var newYears = new Date('1/1/2013'); // Tue Jan 01 2013 00:00:00 GMT-0800 (PST)
  t(3).weeks.after(newYears); // Tue Jan 22 2013 00:00:00 GMT-0800 (PST)

ago is essentially the same as before, except it's not a method and gets the time from now.

new Date(); // Fri May 10 2013 17:44:55 GMT-0800 (PST)
t(1).year.ago; // Thu May 10 2012 17:44:55 GMT-0800 (PST)

It's possible to extend a time by chaining several and calls together. For example, to get the time of 1 year and 3 months ago:

new Date(); // Fri May 10 2013 17:47:44 GMT-0800 (PST)
t(1).year.and(t(3).months).ago; // Fri Feb 10 2012 17:47:44 GMT-0800 (PST)

Install dev dependencies via npm install and run npm test for tests

MIT License