Home handlebars.moment

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