Home handlebars.moment

Handlebars Moment.js helper


Content helpers providing Moment.js functionality for Handlebars




npm install handlebars.moment

Registering the helpers

var Handlebars = require("handlebars");
var MomentHandler = require("handlebars.moment");

Using the helpers


Current date


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


npm test

To see output generated by tests

npm run test:output