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