Donmclean
3/16/2016 - 2:22 AM

Angular Custom Date Filter

Angular Custom Date Filter

/**
 * Description:
 *     removes white space from text. useful for html values that cannot have spaces
 * Usage:
 *   <span>{{ theDate | date:'MMMM dd' }}{{ theDate | dateSuffix }}</span>
 */

const customdate = ($filter) => {
    var suffixes = ["th", "st", "nd", "rd"];
    return function(input) {
        var dtfilter = $filter('date')(input, 'MMMM d');
        let year = $filter('date')(input,'yyyy');
        var day = parseInt(dtfilter.slice(-2));
        var relevantDigits = (day < 30) ? day % 20 : day % 30;
        var suffix = (relevantDigits <= 3) ? suffixes[relevantDigits] : suffixes[0];
        return dtfilter+suffix+', '+year;
    };
};

customdate.$inject = ['$filter'];
angular.module('iko')
    .filter('customdate', customdate);
p(ng-bind="fulldate | customdate:'MMMM d yyyy' ")

//Results: February 26th, 2016 
//Results: March 3rd, 2016