Вычисление разницы дней с использованием angular и jQuery datepicker


В angular я пытаюсь вычислить количество дней между двумя выбранными датами с помощью jQuery datepicker. Он возвращает только null с функцией, которую я использую..

Однако я не совсем уверен, что это функция или использование datepicker в angular..It похоже, проблема в функции, но она работает, когда я использую ее с jQuery..

Моя функция:

$scope.dayDiff = function(firstDate,secondDate){

    $scope.dayDifference = parseInt(Math.round((secondDate - firstDate) / (1000 * 60 * 60 * 24)));;
}

Остальное: http://jsfiddle.net/1mzgLywe/5/

Заранее спасибо!

2 4

2 ответа:

Вот рабочая скрипка, пожалуйста, проверьте, Ссылка на скрипку

Создайте функцию для передачи dateString в 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;
}

Измените функцию dayDiff, как показано ниже,

$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);
}

Угловой момент делает трюк! ...и (очень) еще больше.

Используя фильтрamDifference :

Получите разницу между двумя датами в миллисекундах. Параметры таковы дата, единицы измерения и точность использования. Дата по умолчанию-текущая дата. Пример:

<span>Difference: {{ dateFrom | amDifference : dateTo : 'days' }} days</span>