Вычисление разницы дней с использованием 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 ответа:
Вот рабочая скрипка, пожалуйста, проверьте, Ссылка на скрипку
Создайте функцию для передачи 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>