我想使用meanjs app中的日期范围功能过滤基于invoice_date
的项目(开始日期和结束日期)。
我的问题是日期过滤功能在plunker and my localHost production
中完美运行,但在推送到服务器时,如果某些May month
数据显示最多invoice_date
个数据invoice_date
1}}值日期是`2017-08-24和2017-07-27'这些数据没有显示在表格中,我不知道我在哪里犯了错误以及我错过了什么..... My Plunk
请看我的傻瓜参考。
我显示invoice_date
,因此这是我想要用于过滤的字段。
所以我一直在寻找,我想过滤24-05-2017
作为开始日期和结束日期:例如: - 如果我们选择开始日期,如{{1表格中的结束日期为24-08-2017
这两个交易只需要显示或过滤...所以我使用了日期范围过滤器来实现这个解决方案,但在服务器中它不适合我们救命。
在我的服务器中,如果我选择end date
作为今天的日期,所有数据都显示在表格中,那么我认为问题基于这些字段{{1} }
如果我们解决了这个错误肯定会得到解决方案就会出现这个错误,我自己试了但是我无法解决这个问题...所以请帮助解决这个问题。< / p>
控制器:
$scope.from = new Date(2014, 04, 30);
$scope.to = new Date(2019, 08, 25);
HTML
.filter('dateRange', function() {
return function(records, dateKey, from, to) {
return records.filter(function(record) {
return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from))
&& !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to));
});
};
})
过滤器: -
<input type="date" class="form-control" name="from" ng-model="from">
<input type="date" class="form-control" name="to" ng-model="to">
答案 0 :(得分:0)
我认为你错过了配置&amp;注入你的模块。请使用here
中摘录的步骤首先使用bower安装时刻库
Lines
然后包括以下内容:
bower install angular-moment --save
&amp; moment.js
在您的模块中配置
angular-moment.js
在控制器中使用,如
var myapp = angular.module('myapp', ['angularMoment']);
答案 1 :(得分:0)
过滤数据的问题通常是由时区引起的。
尝试将.format('YYYY-MM-DD')
添加到过滤器,例如:
.filter('dateRange', function() {
return function(records, dateKey, from, to) {
return records.filter(function(record) {
return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from).format('YYYY-MM-DD'))
&& !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to).format('YYYY-MM-DD'));
});
};
})
答案 2 :(得分:0)
我通过在index.html文件中添加此行来解决此问题,请在index.html中添加此行并再次运行。