A helper to master time! Combining the powers of Assemble, Handlebars.js and Moment.js. This helper leverages Moment.js to provide ultimate control over manipulating time and dates in your templates.
Install the helper:
npm i handlebars-helper-moment --save-dev
Now add the helper to Assemble's options:
assemble: {
options: {
// Assemble will automatically resolve the path
helpers: ['handlebars-helper-moment', 'foo/*.js']
}
}
The moment.js lib has plenty of features and options, these examples are just the tip of the iceberg of what moment.js can do.
Remember that:
\{{moment method=null}}
meansmoment().method()
, and\{{moment somedate method="something"}}
meansmoment(somedate).method("something")
.
Also, the handlebars syntax does not allow you pass certain values (like arrays and objects) directly from the tag, so you may need to use YAML frontmatter or supply JSON/YAML data to run those.
YAML front matter is not required, but we'll use it hear to supply our example data for purposes of demonstration:
Results in:
1372599296756
Results in:
16:34:56
Results in:
01:53:23
Results in:
19:17:56
Results in:
Sunday, 30 June 2013 01:53:23 +0300
Results in:
sunnuntai, 30 kesäkuu 2013 01:53:23 +0300
Is the added date valid?
Results in:
true
Results in:
June 2013
When multiple formats are used, moment.js attempts to use the "correct" one
Results in:
June 2013
Results in:
Saturday, 29 June 2013 22:53:23 +0000
Example: get week of year, depends on lang (see moment.js documentation for more details)
Results in:
The week number in Finland is 26
See the moment.js/manipulating documentation for more details.
Results in:
Sunday-Friday
Results in:
2008-2013
Results in:
Saturday, 01 June 2013 00:00:00 +0300
Results in:
Saturday, 06 July 2013 23:59:59 +0300
Results in:
After this page is rendered, the week will end in 6 days
Results in:
This helper was coded in 15 hours
Results in:
The coding started Today at 1:53 AM
Results in:
The difference between those two moments is 52893769
Results in:
This month has 30 days
Results in:
This month has 30 days
Results in:
The event will last 3 hours
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.
Mikko Tapionlinna
Copyright (c) 2014 Mikko Tapionlinna, contributors. Released under the MIT license
This file was generated on Sunday, May 4, 2014.