2014-10-30 2 views
4

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

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

моя функция:

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

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

отдыха: http://jsfiddle.net/1mzgLywe/5/

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

+0

Вы пытаетесь вычесть строки, это не будет работать. 'secondDate' и' firstDate' - это тип строки, а не Date. – MiTa

ответ

7

здесь рабочий скрипку пожалуйста, проверьте, link to fiddle

создать функцию для получить 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); 
} 
+0

Вы можете попробовать [momentum.js] (http://momentjs.com/) для синтаксического анализа даты. – MiTa

6

angular-moment делает трюк! ... и (очень) еще больше.

Использование фильтра amDifference:

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

<span>Difference: {{ dateFrom | amDifference : dateTo : 'days' }} days</span> 
Смежные вопросы