How to filter date in ngTable?

I am trying to filter the date in ngTable based on the given format d MMM yyyy HH:mm:ss . I followed this answer and created a custom filter, but instead this format does not accept d MMM, yyyy .

How can I filter ngTable to filter dates in a given format? Here is my plunker

ngTable

 <td data-title="'Start Date'" class="text-center" header-class="text-left" filter="{ 'start_date': 'text' }" sortable="'type'">{{item.start_date| date: 'd MMM yyyy HH:mm:ss'}}</td> <td data-title="'End Date'" class="text-center" header-class="text-left" filter="{ 'end_date': 'text' }" sortable="'type'">{{item.end_date| date: 'd MMM yyyy HH:mm:ss'}}</td> 

Custom filter

 filter('customUserDateFilter', function($filter) { return function(values, dateString) { var filtered = []; if (typeof values != 'undefined' && typeof dateString != 'undefined') { angular.forEach(values, function(value) { var source = ($filter('date')(value.start_date)).toLowerCase(); var temp = dateString.toLowerCase(); //if ($filter('date')(value.start_date).indexOf(dateString) >= 0) { //if (temp.indexOf(" ") >=0) //debugger; if (source.indexOf(temp) >= 0) { filtered.push(value); } }); } return filtered; } }) 
+1
angularjs ngtable
source share
1 answer

You must be careful when changing the date format. This is due to the fact that the filter formats the date, which must be in the same format as in the table to ensure the correct functionality:

 var source = ($filter('date')(value.start_date)).toLowerCase(); 

need to change to this:

 var source = ($filter('date')(value.start_date, 'd MMM yyyy HH:mm:ss')).toLowerCase(); 

Here is a working plunkr.

+1
source share