In angular, I am trying to calculate the number of days between two selected date with using jQuery datepicker. It returns only null with the function that I am using..
here is the working fiddle please check , link to fiddle
create a function for get the dateString to pass into new Date()
$scope.formatString = function(format) {
var day = parseInt(format.substring(0,2));
var month = parseInt(format.substring(3,5));
var year = parseInt(format.substring(6,10));
var date = new Date(year, month-1, day);
return date;
}
modify the dayDiff
function as below,
$scope.dayDiff = function(firstDate,secondDate){
var date2 = new Date($scope.formatString(secondDate));
var date1 = new Date($scope.formatString(firstDate));
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);
}
angular-moment does the trick! ...and (very) else more.
Using the amDifference filter:
Get the difference between two dates in milliseconds. Parameters are date, units and usePrecision. Date defaults to current date. Example:
<span>Difference: {{ dateFrom | amDifference : dateTo : 'days' }} days</span>