Skip to content

Instantly share code, notes, and snippets.

@cmmartin
Last active July 31, 2019 09:01
Show Gist options
  • Save cmmartin/341b017194bac09ffa1a to your computer and use it in GitHub Desktop.
Save cmmartin/341b017194bac09ffa1a to your computer and use it in GitHub Desktop.
A generic Moment.js date filter for Angular.js
// REQUIRES:
// moment.js - http://momentjs.com/
// USAGE:
// {{ someDate | moment: [any moment function] : [param1] : [param2] : [param n]
// EXAMPLES:
// {{ someDate | moment: 'format': 'MMM DD, YYYY' }}
// {{ someDate | moment: 'fromNow' }}
// To call multiple moment functions, you can chain them.
// For example, this converts to UTC and then formats...
// {{ someDate | moment: 'utc' | moment: 'format': 'MMM DD, YYYY' }}
angular.module('myModule').filter('moment', function () {
return function (input, momentFn /*, param1, param2, ...param n */) {
var args = Array.prototype.slice.call(arguments, 2),
momentObj = moment(input);
return momentObj[momentFn].apply(momentObj, args);
};
});
@guillaumebarranco
Copy link

Really useful, thanks a lot !

@nhuttrieukiem
Copy link

Just have added this filter to my project. Thanks very much bro :-)

@radiumrasheed
Copy link

@uecasm so you created another filter just for the fromNow method.

is that the best way to go about it.

please I need more ideas on this

@viniciogomez89
Copy link

TypeError: Cannot read property 'slice' of undefined
at form.js:274
at fn (eval at compile (angular.js:15351), :4:215)
at regularInterceptedExpression (angular.js:16459)
at expressionInputWatch (angular.js:16354)
at Scope.$digest (angular.js:18002)
at Scope.$apply (angular.js:18280)
at tick (angular.js:13193)

@KevinLedoyen
Copy link

<3

@lacivert
Copy link

❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment