用角度滤波器计算日期差异

时间:2014-09-03 02:00:10

标签: javascript angularjs angularjs-scope angular-filters

我需要能够计算两天之间的差异,包括两者,并显示差异。理想情况下,这将通过角度滤波器,因此它可以在整个应用中使用。

2 个答案:

答案 0 :(得分:7)

JS过滤器

generalFilters.filter('dateDiff', function () {
  var magicNumber = (1000 * 60 * 60 * 24);

  return function (toDate, fromDate) {
    if(toDate && fromDate){
      var dayDiff = Math.floor((toDate - fromDate) / magicNumber);
      if (angular.isNumber(dayDiff)){
        return dayDiff + 1;
      }
    }
  };
});

HTML显示值。

<div class="field-value">{{entry.toStr | dateDiff:entry.fromStr}} <ng-pluralize count="entry.toStr | dateDiff:entry.fromStr" when="{1:'Day', other: 'Days'}"></ng-pluralize></div>

答案 1 :(得分:2)

重复26649194

angular-moment可以解决问题! ......和(非常)其他。

使用 amDifference 过滤器:

  

获取两个日期之间的差异(以毫秒为单位)。参数是   date,units和usePrecision。日期默认为当前日期。例如:

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