Skip to content

Instantly share code, notes, and snippets.

@turhn
Created August 19, 2014 16:02
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save turhn/cbce21836bada3d7349f to your computer and use it in GitHub Desktop.
Save turhn/cbce21836bada3d7349f to your computer and use it in GitHub Desktop.
Date range filter for Angular.JS
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