var DateRange = angular.module('date-range', []);
DateRange.directive('dateRange', ['$filter', function($filter){
return {
scope: {
startDate: '@',
endDate: '@'
},
template: '{{range}}',
restrict: 'AE',
replace: false,
link: function($scope, iElm, iAttrs, controller) {
// DEFAULT VALUES IF ATTRIBUTES DON'T EXIST
if( !iAttrs.startDate ) {iAttrs.startDate = 'January 1, 1970';}
if( !iAttrs.endDate ) {iAttrs.endDate = 'January 31, 1970';}
var output = '';
var monthsOfYear = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var fromDate = new Date(iAttrs.startDate);
var endDate = new Date(iAttrs.endDate);
var from = {
month: monthsOfYear[ fromDate.getMonth() ],
day: fromDate.getDate(),
year: fromDate.getFullYear()
};
var end = {
month: monthsOfYear[ endDate.getMonth() ],
day: endDate.getDate(),
year: endDate.getFullYear()
};
if(from.month === end.month){
// MMMM d - d, yyyy
output = $filter('date')(fromDate, 'MMMM d') + ' - ' + $filter('date')(endDate, 'd, yyyy');
}else{
// MMMM d - MMMM d, yyyy
output = $filter('date')(fromDate, 'MMMM d, yyyy') + ' - ' + $filter('date')(endDate, 'MMMM d, yyyy');
}
$scope.range = output;
}
};
}]);