使用AngularJS找出2个日期之间的差异

时间:2015-11-01 21:36:09

标签: angularjs date

我从MySQL得到2个日期:

开始:2015-11-01 22:56:59结束:2015-11-03 00:00:00

我也从对象数组中获取日期;这是一个对象的样子:

Array[5]
0: Object
$$hashKey: "object:9"
created_at: "2015-10-23 03:36:11"
expiration_date: "2015-11-03 00:00:00"
id: 1
name: "TEST PROJECT"

我需要找到AngularJS剩下多少天......

4 个答案:

答案 0 :(得分:5)

简单。使用以下函数:

$scope.calcDiff = function(firstDate, secondDate){
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds    
    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
}

答案 1 :(得分:4)

考虑使用moment.js进行所有javascript日期和时间操作。

使用时刻库​​,它就像:

一样简单
moment(date1).diff(moment(date2), 'days')

答案 2 :(得分:2)

您只需要编写一个js函数,它可以代替您进行所有计算。

<label>{{diffDate(date1, date2) }} </label>


  $scope.diffDate = function(date1, date2){
          var dateOut1 = new Date(date1); // it will work if date1 is in ISO format
           var dateOut2 = new Date(date2);

          var timeDiff = Math.abs(date2.getTime() - date1.getTime());
          var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
          alert(diffDays);
          return dateOut;
    };

如果您的数据不是ISO格式,则必须明确设置。

var dateString = "2015-01-16 22:15:00";
var date = Date.parse(dateString, "yyyy-MM-dd HH:mm:ss");

答案 3 :(得分:0)

您可以使用amDifference过滤器。不要忘记注入$ filter

let dif = $filter('amDifference')(date1, date2, 'days');