I want to calculate days difference. Click of a button loads a popup containing two inputs for date values. and OK from the dialog gives me days difference back to the page. So far I tried this,
In the controller:
$scope.myitems = ['01/01/2014','01/01/2014'];
$scope.openDlg = function () {
var modalInstance = $modal.open({
template: '<div><input cx-Date ng-model="myitems.date1"/><input cx-Date ng-model="myitems.date2"/><button ng-click="ok()">OK</button></div>',
controller: ModalInstCtrl,
resolve: {
myitems: function () {
return $scope.myitems;
}
}
});
modalInstance.result.then(function (myitems) {
$scope.myitems = myitems;
var dt1 = myitems.date1.split('/'),
dt2 = myitems.date2.split('/'),
one = new Date(dt1[2], dt1[1], dt1[0]),
two = new Date(dt2[2], dt2[1], dt2[0]);
var millisecondsPerDay = 1000 * 60 * 60 * 24;
var millisBetween = two.getTime() - one.getTime();
var days = millisBetween / millisecondsPerDay;
$scope.diff= Math.floor(days);
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
var ModalInstCtrl = function ($scope, $modalInstance, myitems) {
$scope.myitems = myitems;
$scope.ok = function () {
$modalInstance.close($scope.myitems);//.TotalDays; .getTime() - $scope.myitem.date1.getTime());
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
Template calling the dialog:
<div>
<button class="btn btn-default" ng-click="openDlg()">Calender</button>
<p>{{ diff}}</p>
</div>