Skip to content

Instantly share code, notes, and snippets.

@mdenisov
Forked from turhn/daterange_filter.js
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mdenisov/83da2b5bffeaba2b2321 to your computer and use it in GitHub Desktop.
Save mdenisov/83da2b5bffeaba2b2321 to your computer and use it in GitHub Desktop.
app.filter('daterange', function() {
return function(items, startDate, endDate) {
var filteredResult = [];
// Parse from the filter format 'dd/mm/yyyy' (Turkish culture)
function parseDateFromFilter(strDate) {
var parts = strDate.split('/');
return new Date(parts[2], parts[1] - 1, parts[0]);
}
// Parse the UTC time data from JSON source
function parseDateFromUtc(utcStr) {
return new Date(utcStr);
}
// Defaults
var parsedStartDate = startDate ? parseDateFromFilter(startDate) : new Date(1900, 1, 1);
var parsedEndDate = endDate ? parseDateFromFilter(endDate) : new Date();
// Take action if the filter elements are filled
if (startDate || endDate) {
items.forEach(function(item) {
if (parseDateFromUtc(item.Date) >= parsedStartDate && parseDateFromUtc(item.Date) <= parsedEndDate) {
filteredResult.push(item);
}
});
} else {
return items; // By default, show the regular table data
}
return filteredResult;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment