【问题标题】:Find difference between 2 dates with AngularJS使用 AngularJS 查找 2 个日期之间的差异
【发布时间】:2015-11-01 21:36:09
【问题描述】:

我从 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 还剩多少天...

【问题讨论】:

  • 您可以使用 momentjs 来获取日期之间的差异,然后使用过滤器以有用的格式显示它们
  • 不重复我需要从 MySQL 中找到日期之间的差异并直接在模板中获取差异。

标签: angularjs date


【解决方案1】:

很简单。将函数用作:

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

【讨论】:

  • 不简单,因为我以这种格式从 mysql 获取日期:2015-11-01 22:56:59 并且我的日期在对象数组中......
  • 调用 $scope.calcDiff(new Date("2015-10-23 03:36:11"), new Date("2015-11-03 00:00:00"));
【解决方案2】:

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

使用moment库就很简单了:

moment(date1).diff(moment(date2), 'days')

【讨论】:

  • 问题在于我的日期在对象数组内,所以我只能直接在模板内找到差异或在每个对象内设置新值...
  • 你可以在模板中使用上面的,只需添加curlys:{{moment(date1).diff(moment(date2), 'days')}}
【解决方案3】:

您只需要编写一个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");

【讨论】:

  • 我以这种格式从 mysql 获取日期:2015-11-01 22:56:59 并且我的日期在对象数组中...
  • 您可以将数组作为参数放入函数中并使用它。
  • 但是我将如何为数组中的每个对象设置新值?我更新了主帖对象的样子
【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 2016-03-20
    • 2011-07-29
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    相关资源
    最近更新 更多