https://github.com/fragaria/angular-daterangepicker
angular.
, :)
my html:
<div ng-controller="dateRange" class="text-right">
<st-date-range start="dateRange.start" end="dateRange.end"></st-date-range>
<ta-date-range-picker class="well" ng-model="dateRange" ranges="customRanges" callback="dateRangeupdate(dateRange)"></ta-date-range-picker>
</div>
.directive('stDateRange', ['$timeout', function ($timeout) {
return {
restrict: 'E',
require: '^stTable',
scope: {
start: '=',
end: '='
},
link: function (scope, element, attr, table) {
var query = {};
var predicateName = attr.predicate;
scope.$watch('start', function () {
if (scope.start) {
query.start = moment(scope.start).format('YYYY-MM-DD');
}
if (scope.end) {
query.end = moment(scope.end).format('YYYY-MM-DD');
}
table.search(query, predicateName);
});
}
}
}])
$scope.customRanges = [
{
label: "This week",
range: moment().range(
moment().startOf("week").startOf("day"),
moment().endOf("week").startOf("day")
)
},
{
label: "Last month",
range: moment().range(
moment().add(-1, "month").startOf("month").startOf("day"),
moment().add(-1, "month").endOf("month").startOf("day")
)
},
{
label: "This month",
range: moment().range(
moment().startOf("month").startOf("day"),
moment().endOf("month").startOf("day")
)
},
{
label: "This year",
range: moment().range(
moment().startOf("year").startOf("day"),
moment().endOf("year").startOf("day")
)
},
{
label: "Last year",
range: moment().range(
moment().startOf("year").add(-1, "year").startOf("day"),
moment().add(-1, "year").endOf("year").startOf("day")
)
}
];
$scope.mycallback = "None";
$scope.dateRangeChanged = function () {
$scope.mycallback = " from " + $scope.dateRange.start.format("LL") + " to " + $scope.dateRange.end.format("LL");
}
}]);