Handlebars Moment.js helper
{{moment}}
Content helpers providing Moment.js functionality for Handlebars
Version
1.0.4
Installation
npm install handlebars.moment
Registering the helpers
var Handlebars = require("handlebars");
var MomentHandler = require("handlebars.moment");
MomentHandler.registerHelpers(Handlebars);
Using the helpers
moment
Current date
{{moment}}
Specific date
{{moment d}}
{{moment date=d}}
Date format
{{moment d "YY, MMM dd"}}
{{moment date=d format="DD/MM/YYYY"}}
{{moment d unix=true}}
Date input parsing
{{moment dinput input="DD-YYYY-MM"}}
Date timezone
{{moment dstr utc=true}}
{{moment dstr local=true}}
Date units
{{moment d "millisecond"}}
{{moment d "second"}}
{{moment d "minute"}}
{{moment d "hour"}}
{{moment d "date"}}
{{moment d "day"}}
{{moment d "weekday"}}
{{moment d "weekday" type="s"}}
{{moment d "weekday" type="xs"}}
{{moment d "weekday" type="number"}}
{{moment d "isoweekday"}}
{{moment d "dayofyear"}}
{{moment d "week"}}
{{moment d "isoweek"}}
{{moment d "month"}}
{{moment d "year"}}
{{moment d "weekyear"}}
{{moment d "isoweekyear"}}
Date manipulation
{{moment d add="days" amount="7"}}
{{moment d add="365" addparam="d"}}
{{moment d subtract="days" amount="7"}}
{{moment d subtract="365" subtractparam="d"}}
Start and end of years
{{moment d startof="year"}}
{{moment d endof="year"}}
Date thresholds
{{moment d max=dmax}}
{{moment d min=dmin}}
Date from now and specific dates
{{moment d "fromNow"}}
{{moment d "from" dfrom}}
Difference between dates
{{moment d diff=ddiff}}
Date as calendar time
{{moment d "calendar"}}
Date as strings {{moment d "str"}} {{moment d "val"}} {{moment d "unix"}}
Moment utils
{{moment d "daysinmonth"}}
{{moment d "todate"}}
{{moment d "array"}}
{{moment d "isostring"}}
See moment helper for more details
duration
Duration - implictly in milliseconds
{{duration d}}
Duration with explicit input date unit type
{{duration d input="s"}}
Amount of date units in duration
{{duration d "seconds"}}
{{duration d "minutes"}}
{{duration d "years"}}
{{duration d get="seconds"}}
{{duration d "s"}}
Duration as date units
{{duration d "asseconds"}}
{{duration d "asminutes"}}
{{duration d "asyears"}}
{{duration d as="seconds"}}
Humanize duration output
{{duration d "humanize"}}
{{duration d "humanize" true}}
{{duration d suffix=true}}
Manipulate durations
{{duration d add=damount as="milliseconds"}}
{{duration d subtract=damount as="seconds"}}
{{duration d subtract=damount as="days"}}
See duration helper for more details
Using handlebars.moment in the browser
handlebars.moment
is written using a UMD pattern and it’s preferable to load it using a module loader that supports AMD modules (eg. RequireJS, JSPM). This guarantees that its dependencies have been loaded before it is run.
However, if a window element is detected, the function returned by handlebars.moment
is assigned to HandlebarsMoment
in the global window context. This function needs to be called with lodash
and moment
as its arguments. The resulting object has the registerHelpers
which must then be called for handlebars
to know about the helper.
HandlebarsMoment(_, moment).registerHelpers(Handlebars);
Tests
npm test
To see output generated by tests
npm run test:output